Troubleshooting
Common issues and their fixes
Troubleshooting
"ArmorGemini intent plan missing for this session"
Cause: Gemini did not call register_intent_plan before using a tool. This happens when the plan expired or the session just started.
Fix: Re-prompt. Gemini will register a new plan on the next turn.
"ArmorIQ intent token expired"
Cause: The intent token TTL (10 minutes by default) expired before Gemini finished executing. Most prompts finish well within this window, but very long multi-step plans with extended thinking time can hit it.
Fix: Restart your prompt. Gemini will register a fresh plan. The plugin auto-refreshes tokens at the turn boundary, so this should rarely surface in practice.
If you need to extend the TTL for a long-running workflow, edit scripts/lib/config.mjs in the ArmorGemini install directory and raise validitySeconds above the current 600s default, for example 900 (15 min).
"ArmorGemini intent drift: tool not in plan"
Cause: Gemini tried to use a tool it did not declare in its plan.
Fix: This is working correctly. Intent drift detection is blocking an unplanned tool. Gemini should re-register a plan that includes the tool, which it usually does automatically on retry.
"Policy denied path /steps/[0]/tool"
Cause: The ArmorIQ backend's policy is denying tool calls at token issuance time. This happens when your ArmorIQ tenant has blocking policies with no allow-rules.
Fix: Configure allow-rules in your ArmorIQ tenant dashboard at https://platform.armoriq.ai.
Hooks do not fire on gemini start
Cause 1: The hook block is missing from ~/.gemini/settings.json.
Fix: Re-run the installer:
curl -fsSL https://armoriq.ai/install_armorgemini.sh | bashCause 2: The command: path points to a non-existent hook-router.mjs.
Fix: Confirm the ArmorGemini checkout exists at the path referenced in the hooks:
grep armorGemini ~/.gemini/settings.json
ls -la ~/.armoriq/armorGemini/scripts/hook-router.mjsIf the checkout is gone, re-clone it:
git clone https://github.com/armoriq/armorGemini ~/.armoriq/armorGeminiCause 3: Gemini CLI is caching an older settings.json. Some Gemini CLI builds do not reload settings mid-session.
Fix: Fully quit gemini and reopen. If that fails, run gemini --config-path to confirm which settings file is actually being read.
/armor:* commands do nothing
Cause: TOML files were not copied into ~/.gemini/commands/armor/.
Fix:
ls ~/.gemini/commands/armor/
# expect: add.toml, help.toml, list.toml, template.tomlIf missing, re-run the installer, or copy them from ~/.armoriq/armorGemini/.gemini/commands/armor/.
armoriq: command not found after install
Cause: Global npm install failed (permissions issue).
Fix:
npx @armoriq/sdk login --product armorgeminiOr fix permissions:
sudo npm install -g @armoriq/sdkBackend calls are failing (403 / 401)
Cause: The API key is missing, invalid, or the SDK is reading from a different location than you set.
Fix:
armoriq whoamiIf that reports "not logged in":
armoriq login --product armorgeminiIf it reports the wrong account, clear credentials and re-login:
armoriq logout
armoriq login --product armorgeminiDebug Mode
To see what ArmorGemini is doing:
export ARMORGEMINI_DEBUG=true
geminiDebug output goes to stderr. You will see hook events, plan registration details, POST /iap/verify-step results, and audit calls.
For further help, check the source code at https://github.com/armoriq/armorGemini or email license@armoriq.io.