Skip to content

Error codes

Every error answer carries a code. Some also carry a lower-case error key, which exists so a client can branch on the case without matching on prose:

{
"code": "TRIAL_CREDITS_EXHAUSTED",
"error": "trial_credits_exhausted",
"message": "Your trial credits are used up. Connect a runner to keep your AI team working."
}

code and error are stable. message is written for a person and may be reworded, so never match on it.

CodeHTTPMeansDo
UNAUTHORIZED401No valid sessionSign in again
FORBIDDEN403Signed in, missing a permission. The message names the keyHave an admin tick that permission
TENANCY403The record belongs to another workspaceCheck the id. Workspaces never share data
TENANT_SUSPENDED403The workspace is suspended, so new tasks and runs are refused. Work already running finishesGet in touch
CodeHTTPMeansDo
VALIDATION400The request body is wrong. Field errors come back in errors[]Fix the named fields
NOT_FOUND404No such recordCheck the id
CONFLICT409The record changed under you, or the change collides. Details in conflicts[]Re-read and retry
APPROVAL_REQUIRED428The action needs an approval that has not been givenDecide it in the approvals queue
NOT_IMPLEMENTED501The capability is not wired in this install. Knowledge search without pgvector and an embeddings key answers thisTurn the capability on, or stop calling it. It never fakes an empty result
INTERNAL500Something failed that was not anticipated. No details are returnedRetry, then report it
CodeHTTPBranch keyMeans
TRIAL_CREDITS_EXHAUSTED402trial_credits_exhaustedThe trial grant is spent

Raised before the model call, so an exhausted workspace spends nothing. Recover by pairing a runner or connecting your own AI credential. Workspaces without a trial ledger are never metered and never see this.

CodeHTTPBranch keyMeansDo
NO_RUNNER_AVAILABLE503no_runner_availableNo live runner advertises the agent the work needsStart a runner, or switch the AI runtime to Direct LLM
NO_RUNTIME_AVAILABLE503Every target in the agent’s runtime chain was tried and skipped. The message lists each one and whyFix one of the listed reasons
RUNNER_RUN_FAILED503runner_run_failedA run started and produced nothing usableRead the attempt on the Execution tab
RUNNER_DEREGISTERED410The runner acting has been revoked. Deregistration is permanentPair the machine again

These four are the one-time release working as designed. A runner fetches once when it prepares an attempt; a second fetch for the same attempt is refused.

CodeHTTPBranch keyMeans
NO_AGENT_CREDENTIAL409no_agent_credentialThere is no coding-agent credential to release for this run
AGENT_CREDENTIAL_ALREADY_RELEASED409agent_credential_already_releasedThe credential for this attempt was already handed out
NO_RUN_ENV409no_run_envThe run’s project environment could not be fully resolved. It fails rather than starting half configured
RUN_ENV_ALREADY_RELEASED409run_env_already_releasedThe environment for this attempt was already handed out
AGENT_CREDENTIAL_UNREFRESHABLE401A stored credential could not be refreshed, usually because it was revoked

A retry gets a fresh attempt, and each attempt gets its own single release, so “already released” never blocks a retry.

CodeHTTPMeans
TUNNEL_UNAVAILABLE503This install has no transport for sharing a live app
TUNNEL_SESSION_LIMIT409The meeting already holds the maximum number of live sessions. See limits
  • Common issues: the same failures, indexed by symptom rather than by code.
  • Limits: the ceilings behind the 402 and the 409.
  • Permissions: the key a 403 names.