Troubleshooting
Everything on this page is new.
Use this page to diagnose the most common configuration, runtime, and UI interpretation issues with the OpenBox Claude Code integration.
Hooks Don't Run At All
Typical causes:
.claude/settings.jsonhasn't been saved, or is in the wrong directory (it must be in the project root or~/.claude/)- the
matcherfield doesn't match the tool being called - Node.js is not on
PATHfor the shell Claude Code launches hooks from
What to do:
- Confirm
.claude/settings.jsonparses as valid JSON. - Run the hook command directly (
npx openbox-claude-code hook pre-tool-use) to confirm it executes without Claude Code in the loop. - Set
OPENBOX_DEBUG=1and re-run a session.
OpenBox Returns 401 invalid token or agent identity
This usually means the API key reached OpenBox, but the agent identity material didn't match the registered agent.
What to verify:
- The API key belongs to the same OpenBox agent as
OPENBOX_AGENT_DID. OPENBOX_AGENT_DIDuses thedid:aip:<uuid>format.OPENBOX_AGENT_PRIVATE_KEYis the base64 raw 32-byte Ed25519 seed, not a PEM or public key.- The private key hasn't been rotated since the environment was configured.
No Sessions Appear In OpenBox
Check these first:
- The shell running Claude Code can reach
OPENBOX_URL. - The API key is valid for the intended agent.
- At least one hook fired; check
OPENBOX_DEBUG=1output for a successful send. - You're looking at the dev-session agent, not a runtime agent registered for the same project.
Tool Calls Aren't Blocked In Enforce Mode
This usually means the mode variable isn't set where the hook process can read it.
What to verify:
OPENBOX_CLAUDE_CODE_MODE=enforceis set in the same environment the hook command runs in, not just your interactive shell- the policy or guardrail you expect to trigger actually returns
BLOCKorHALTfor that input - you're testing a tool type that isn't excluded via an empty
hooksarray for its matcher
File Contents Or Shell Output Missing From The Dashboard
This is usually intentional. Check whether OPENBOX_CLAUDE_CODE_REDACT_FILE_CONTENTS or OPENBOX_CLAUDE_CODE_REDACT_SHELL_OUTPUT is set in the developer's own environment; these are per-developer privacy controls, not a bug.
Commits Aren't Linked To The Session
Check these first:
- The commit was made from within the same Claude Code session (not a manual commit after the session ended).
- The commit trailer wasn't stripped by a commit-message hook or squash-merge before it reached the connected repository.
- The repository is connected as a Project and the runtime is linked to a repository agent whose paths match the changed files.
Debug Logging
OPENBOX_DEBUG=1 claude
This helps diagnose missing events, unexpected verdicts, and configuration problems.