Quickstart (Claude Code) run failed?
The rest of this page assumes the Pome CLI. If you came through the Claude Code quickstart, you likely don’t have it installed. Debug from the conversation instead:- Ask the coach for the report again:
get_report(run_id)names each criterion, its verdict, and what the judge saw. finalize_runerrored. Read the error text first. If it says the session is still live, the failure is retryable (a capture or transient server error) and the session is preserved: callfinalize_runagain with the samesession_idinstead of re-running anything. Only an expired session is unrecoverable — it cannot be scored, so re-run steps 5–8 of the quickstart prompt and finalize the moment the examinee exits.- Pome tools missing. Check the connection with
claude mcp list, then re-authenticate from the/mcpmenu inside Claude Code. - The dashboard link in every report shows the full trace and judge feedback.
Debugging with the CLI
Start withpome inspect latest. It usually points at the layer that failed: task, agent, twin, or judge.
Agent crashed
- Agent did not no-op on
POME_PREFLIGHT=1. - Agent ignored
POME_GITHUB_REST_URLand hit the real internet. - Task prompt referenced state the agent could not parse.
Score below 100
fidelity: "unsupported", the agent reached for an endpoint the twin does not implement yet. File an issue at github.com/pome-sh/digital-twins.
Twin will not start
A port is stuck:/s/<sid>/healthz requires the JWT and returns 401 without it.
Hosted run hangs or 401s
Re-mint your key:POME_API_KEY directly in CI.
The hosted upload rejects my events.jsonl schema
The hosted upload requires the discriminated-union RecorderEvent schema.
Upgrade the CLI:
pome fix-prompt says “no failures” for a failed hosted run
Hosted runs do not yet surface per-criterion verdicts to the CLI. If you see the message verdicts not available, open cloud run URL, or re-run POME_LOCAL=1 to enable local judge, do one of:
- Open the run URL printed by
pome runand read the judge feedback in the dashboard. - Re-run with
POME_LOCAL=1 pome run <task>to use the local judge, which writes per-criterion verdicts to disk.
pome login says “already logged in” but I do not see ~/.pome/credentials.json
On macOS, pome stores the key in the Keychain by default:
~/.pome/credentials.json. Both paths are valid; the CLI tries the env var, then the Keychain, then the JSON file.
pome run exits 2 or 3 when you expected 1
A few exit-code paths have known regressions. A sub-threshold hosted run can return exit code 2 or 3 instead of the documented 1; a failing pre-flight (missing task file, logged-out state) can also return 2 instead of 5 or 3. The documented contract in CLI reference is the intent.
If your CI branches on $?, treat exit codes as advisory for now. The dashboard run URL is the source of truth for pass/fail.
pome run --api-url http://... does not change the destination
The --api-url flag is currently dropped on the way to the hosted client. Use the env var as a workaround:
pome session list returns more rows than the dashboard
The CLI defaults to --state running, but if you have ever passed --state all, that selection persists in your shell history. The dashboard’s Twins page defaults to running sessions. To match it:
pome session create prints two identical URLs and my agent’s MCP transport fails
Hosted session text output currently prints the MCP URL without the /mcp suffix, so it looks identical to the REST API URL. An agent that mounts that URL as an MCP transport gets REST responses and fails to negotiate the handshake.
Workaround: append /mcp to the printed URL when configuring your agent.
pome twin start github path emits the suffix correctly.