Errors

Problem details, error codes, and how to handle them.

Errors are RFC 9457 problem details with the media type application/problem+json.

{
  "type": "about:blank",
  "title": "No compliant model",
  "status": 503,
  "code": "no_compliant_model",
  "detail": "No model deployment satisfies this client's region and retention rules.",
  "request_id": "6f1c2a9b0d4e4f7a8b3c5d6e7f809a1b",
  "issues": []
}
FieldMeaning
statusThe HTTP status code
codeA machine-readable code. Branch on this, not on title or detail.
title, detailHuman-readable summary and explanation
request_idAlso in the X-Request-Id response header. Quote it when you contact support.
issuesFor validation errors: one entry per field, with a JSON Pointer path and a message

Codes

The set of codes is open: treat a code you do not recognise as a generic error for its status.

CodeTypical statusMeaning
unauthenticated401No token, or the token is not valid
credential_revoked401The credential was revoked
forbidden403Authenticated, but not allowed
not_found404No such object, or not visible to you
conflict409A version or state conflict, for example a stale compliance profile version
validation_failed422The request does not match the contract; see issues
rate_limited429Too many requests or tokens for this credential or client
not_implemented501Defined in the contract, not built yet
no_compliant_model503No model deployment satisfies the client's rules
budget_exceededA hard budget stopped the call
limit_hitA run limit was reached
feature_not_allowedThe feature is switched off for this caller
tool_unavailable, tool_not_reviewedA tool could not be used
kill_switch_active, workspace_suspendedAn administrator stopped this agent, client, credential, project or workspace
verify_failed, awaiting_input_expired, cancelledA run ended this way
schema_driftA pinned tool schema changed and needs review
wrong_geo421The request reached the wrong geo for this credential; geo_id names the right one
placement_moved409The workspace moved while the request ran; retry it
policy_stale503Policy could not be confirmed as current, so a risky action was refused; retry after Retry-After
overloaded503The service is shedding load; retry after Retry-After
idempotency_conflict409The Idempotency-Key was already used with a different body or route
idempotency_in_progress409A request with this Idempotency-Key is still running; retry after Retry-After
precondition_failed412The If-Match value is stale: read the object again
replay_expired410The stream position in after is older than what is kept
outcome_unknown409A tool's effect is unknown and is being reconciled; it is never retried automatically
incomplete409An export could not include every source; exports are complete or they fail
approval_mismatch409The approval does not match the exact tool call it was shown for
internal_error500Something went wrong on our side

When the status is 401, the response also carries WWW-Authenticate: Bearer.

On this page