Error reference
Every error the CLI and the bridge can emit, what causes it, and how to clear it. Generated from our own source, so it is exhaustive by construction.
Unsupported database type
createDatabase switches on a closed set and throws on anything else, so a typo in configuration fails at startup instead of silently choosing a default.
Cannot create a flat plan from an empty task list
The fallback planner refuses an empty input rather than returning an empty plan, because a plan with no tasks is indistinguishable from work already done.
MemPalace mode=graphiti requires mcpEndpoint
Graphiti implements the memory client directly rather than sitting behind the MCP adapter, so it needs its own server URL and refuses to start without one.
Linear state not found
Moving an issue matches workflow state by name, case-insensitively. Teams rename states freely, so a hardcoded name breaks without warning.
Failed to parse JSON from an LLM response
The wiki compiler tries a fenced block, then a raw brace match, then gives up. Salvaging further would mean guessing at what the model meant.
Cannot approve a wave plan in this status
Approve, pause and resume each assert the plan's current status first. The guard names the state that blocked it, which is the whole diagnosis.
Generated plan has validation errors
Refinement re-validates its own output before scoring it. A plan that the planner produced still has to satisfy the same DAG rules as a hand-written one.
Planner response hit the token ceiling and was truncated
stop_reason max_tokens means the plan is cut off mid-structure. It is refused rather than accepted, because a shorter plan and a broken one look identical.
Session key is not valid base64url
The key in a join link must decode as base64url. Anything that URL-encodes or line-wraps the fragment corrupts it before decryption is attempted.
Status poller not initialized
A module-level singleton reached before its init ran. The same guard protects the orchestrator client and service, each naming its own initialiser.
Task not found in wave plan
A completion callback named a task the plan does not contain. The lookup runs before the idempotency guard, so a stale or misrouted callback fails loudly.
Unknown prompt template
Templates are registered by name and looked up at construction. A missing one throws rather than falling back, because a silent default changes the plan.
The ao-cli orchestrator mode is deprecated and non-functional
ao removed the commands this adapter calls. It now fails loudly rather than dispatching into a broken path that looks like an agent never starting.
Ciphertext is malformed (expected iv.ciphertext.tag)
The wire format is three base64url segments joined by dots. This error fires before any decryption is attempted, on a structural check.
Could not decrypt: wrong key or tampered ciphertext
AES-GCM refuses to distinguish a wrong key from a modified payload. That ambiguity is deliberate — telling them apart would leak information.
Cannot assign waves: cycle detected in dependency graph
Wave assignment topologically sorts the task graph first. A cycle makes ordering impossible, so it fails at plan time rather than mid-run.
SQLite path or Postgres URL is required
createDatabase validates per-backend configuration at construction. Choosing a database type without its connection detail fails immediately.
HTTP adapter requires url configuration
Selecting --mode http without an endpoint fails in the constructor rather than at first dispatch, so the misconfiguration surfaces at startup.
Invalid webhook signature
The Linear webhook is public by necessity, so the HMAC signature is the authentication. A missing header and a bad signature are both rejections.
Join link has no #k= fragment — the key is missing
The session key lives after the # in a join link. Copying the URL without the fragment strips the only thing that can decrypt the transcript.
WebCrypto is unavailable — shared sessions need a secure context
Shared sessions require Node 18+ or a browser on https or localhost. Serving over plain http silently removes crypto.subtle from the page.
