This guide helps you resolve common issues encountered when running the Codencer Orchestration Bridge locally.
Always start here to verify your environment:
# Checks if .codencer/ is setup and if agent binaries are accessible
./bin/orchestratorctl doctorSymptoms: ./bin/orchestratorctl returns error connecting to orchestratord.
- Cause: The
orchestratordprocess is not running or is on a different port. - Fix:
- Ensure the daemon is started:
make startormake start-sim. - Check the port in your CLI command or
.envfile (default is8085).
- Ensure the daemon is started:
Symptoms: Submitting a task fails immediately; doctor shows MISSING for an adapter.
- Cause: The bridge cannot find the
codex-agentorclaudebinary in your$PATH. - Fix:
- Export the specific path:
export CODEX_BINARY=/path/to/codex-agent. - Or export
CLAUDE_BINARY=/path/to/claudeif the Claude CLI is installed outside your default$PATH. - Or ensure the binary is in your global
$PATH.
- Export the specific path:
Symptoms: Claude starts, but the final result summary mentions malformed or missing Claude output.
- Cause: The
claudeprocess did not emit a final JSONresultobject on stdout, or another tool/script polluted stdout. - Fix:
- Inspect
./bin/orchestratorctl step logs <UUID>for the raw stdout payload. - Inspect
./bin/orchestratorctl step artifacts <UUID>and reviewstderr.logfor CLI/auth/runtime errors. - Re-run
claude -p --output-format jsondirectly in the repo if you suspect local CLI/environment issues.
- Inspect
Symptoms: failed_bridge reported during attempt.
- Cause: Git worktree conflict or permission issue.
- Fix: Run
git worktree pruneand ensure the~/.codencer/workspacesdirectory is writable.
Symptoms: submit exits with a usage/input error before contacting the daemon.
- Cause: No primary source was supplied, or multiple primary sources were supplied together.
- Fix: Choose exactly one of:
- positional task file
--task-json--prompt-file--goal--stdin
Symptoms: submit rejects --title, --context, --adapter, --timeout, --policy, --acceptance, or --validation.
- Cause: Those flags were combined with a canonical task source such as a positional task file or
--task-json. - Fix: Put those fields in the YAML/JSON task itself, or switch to a direct source (
--prompt-file,--goal, or--stdin).
Symptoms: submit --stdin or another direct source exits with a usage/input error.
- Cause: The prompt text was empty or whitespace-only.
- Fix: Ensure the prompt file or stdin stream contains real task text before submitting.
Symptoms: submit --task-json ... fails before the request is sent.
- Cause:
--task-jsonis strict JSON mode and the payload is invalid JSON. - Fix: Validate the payload as JSON, or submit the file positionally if you want the YAML/JSON-compatible task-file parser.
Symptoms: Canonical task submission fails locally.
- Cause: The authored task payload includes a
run_idthat conflicts with the CLI<RUN_ID>. - Fix: Either remove
run_idand let the CLI fill it, or make the authoredrun_idmatch the run you are submitting to.
Symptoms: An official wrapper example exits before the first task runs.
- Cause: The wrapper checks
run state --jsonfirst and only creates the run automatically when--projectis provided. - Fix: Either start the run yourself first, or pass
--project <project>to the wrapper.
Symptoms: examples/automation/run_tasks.sh exits immediately.
- Cause: The bash wrapper needs a JSON parser for machine-safe result handling.
- Fix: Install
jq, or ensurepython3is available in$PATH.
Symptoms: A sequential wrapper exits on a non-zero task result.
- Cause: Stop-on-failure is the official default for v1.
- Fix: Re-run with the wrapper’s explicit continue mode, or set
CODENCER_CONTINUE_ON_FAILURE=1for automation.
Symptoms: The wrapper keeps iterating after a failed task.
- Cause:
CODENCER_CONTINUE_ON_FAILURE=1is set in the environment or the explicit continue flag was used. - Fix: Unset the environment variable or omit the continue flag.
Every task result includes a state. Understanding the difference between Infrastructure and Goal failure is key to recovery.
failed_terminal: The agent finished execution, but the summary reports that the goal was not met.- Resolution: Refine your task instructions or check if the agent is stuck in a loop.
failed_validation: The agent finished and exited with 0, but your post-execution validations (tests, lint) failed.- Resolution: Review the
step validationsoutput and fix the code or the test.
- Resolution: Review the
- Cause: The Windows-side
agent-broker.exeis not running. - Fix: Start the broker on the host machine. Verify port 8088 is open.
- Cause: Antigravity is not active in your IDE or the
.geminidaemon directory is hidden/unreachable. - Fix: Open a project in VS Code with Antigravity enabled. Ensure your WSL mount for
C:is working correctly.
- Cause: The IDE instance was closed or restarted.
- Fix: Run
orchestratorctl antigravity listand re-bind to the new PID.
- Cause: A previous git operation didn't clean up correctly, or multiple tasks are fighting for the same repo lock.
- Fix: Run
git worktree prune. If the issues persist, check if other instances are targeting the samerepo_root.
Codencer uses specific states to distinguish between instructional failure (Goal) and system failure (Infrastructure).
| State | Category | Meaning | Recovery |
|---|---|---|---|
completed |
Success | Goal met and all validations passed. | None. |
failed_terminal |
Goal Failure | Agent finished but reported it could NOT meet the goal. | Refine prompt/intent. |
failed_validation |
Goal Failure | Agent finished (0), but post-tests/lint failed. | Fix code logic or tests. |
failed_adapter |
Infrastructure | The agent binary crashed (e.g. API error, OOM). | Check step logs. |
failed_bridge |
Infrastructure | Codencer failed (e.g. Disk Full, Git Error, Provisioning). | Check daemon logs. |
timeout |
Infrastructure | Task exceeded timeout_seconds and was killed. |
Increase timeout. |
cancelled |
Infrastructure / Operator Action | Task was explicitly interrupted before completion. | Re-run or submit a follow-up task. |
If the local state becomes corrupted or you want a fresh start:
# DANGER: This deletes the database and all artifact history
make nuke
# Rebuild and start fresh
make build
make start-sim