Skip to main content
Last updated on

Troubleshooting

Startup Errors​

ErrorCheck
OpenBoxConfigErrorOPENBOX_URL is set; {PREFIX}_API_KEY is set; DID/private key are paired when used
OpenBoxAuthErrorAPI key format and validation against OpenBox Core
OpenBoxInsecureURLErrornon-localhost URL uses HTTPS
OpenBoxNetworkErrorruntime can reach OPENBOX_URL

Validation runs at engine.govern(crew), not just engine creation.

No Events In OpenBox​

  • make sure you run the governed crew returned by engine.govern(crew)
  • make sure governed agents are OpenBoxAgent
  • make sure governed tasks are OpenBoxTask
  • make sure the engine is not closed before kickoff

Guardrail UI Test Passes But Live Run Does Not Fire​

Policy executes before guardrails. If the earlier policy verdict is not ALLOW, the guardrail may never run.

Hook-Level Block Looks Wrong​

If a Layer 3 policy fires inside a CrewAI tool path, the user-visible error may surface later as a generic ValueError rather than GovernanceBlockedError.

Move the trigger to ActivityStarted if you want a clearer task-boundary failure.

Duplicate Approval Requests​

You are likely governing hook payloads as if they were business actions. Limit approval policy to task boundaries unless hook-level approval is intentional.

Approval Never Resolves​

Check:

  • hitl_enabled=True
  • the crew is not in exclude_crews_hitl
  • OpenBox eventually returns allow, block, or halt
  • the approval window has not expired

Multiple Engines In One Process​

Use one OpenBoxEngine per process. Re-initializing the engine with different instrumentation settings can raise a configuration error.

Local SDK Changes Are Not Reflected​

When testing a local checkout of the SDK:

uv pip install -e /path/to/openbox-crewai-sdk-python

Debug Logging​

engine = create_openbox_engine(debug_log=True)

This enables per-agent trace logging for evaluate payloads, verdicts, and approval polling cycles.