Errors
Every failure is an RFC 9457 problem (application/problem+json). type names the kind, reason is the machine-readable why, retryable says whether repeating the same request can succeed, and requestId is what to quote. A resource that belongs to someone else answers exactly like a missing one.
{ "type": "urn:fin:error:conflict", "title": "Conflict", "status": 409,
"reason": "run_active", "requestId": "0192…", "retryable": false }
run_active(409) — a run already holds this conversationbudget_exhausted(409) — the user's spend headroom is gone, or an operator froze itapproval_not_pending(409) — the approval was already decided or has expired, or its id does not exist or belongs to a different conversationexecution_capacity(409) — no execution capacity is free right now;retryablesays whether to try againexecution_unavailable(409) — the execution engine could not take the workstop_pending(409) — a stop is already in progress and its cleanup is not yet confirmedautomation_changed(409) — therevisionsent is stale; reload the automationautomation_held(409) — an operator holds the automation; it fires again when releasedautomation_invalid(409) — the automation's definition cannot run as writtenautomation_completed(409) — the automation has finished for good and cannot fire againprofile_unknown_tool(409) — the run profile names a tool this deployment does not havedeployment_paused(409) — an operator paused a deployment control; nothing was admitted or firedrun_not_active(409) — the run named in the path is not the conversation's live runwithdrawal_changed(409) — the withdrawal cannot be prepared or confirmed as asked: the balance no longer covers it, its terms changed or expired, or it is already in progresscredential_expired(401) — the user token has expired; obtain a fresh oneaccount_disabled(403) — an operator disabled the accountaccount_not_provisioned(412) — the identity is verified but has no account yet; callusers.ensurefirstprovider_unavailable(503) — an external provider the call depends on did not answerinvalid_input(400) — the body or query failed validation;issuesnames each fieldinternal(500) — a fault on our side; quoterequestIdwhen reporting itpartner_key_required(401) — noX-Api-Keyheader was sentpartner_key_invalid(401) — theX-Api-Keyis unknown or revokedsubject_mismatch(403) — the{userId}in the path is not the token's userorigin_rejected(403) — a browserOriginother than the configured web originrate_limited(429) — the per-key or per-user limit is spent; honourRetry-Afterstream_capacity(429) — no stream socket is free on this replica or for this user; honourRetry-Afterinvalid_cursor(400) — thecursoris not one this list minted