Skip to main content
A refused request raises one class. Branch on its code, never on the message.
HOSTED_ERROR_CODES is the closed list as a runtime array and isHostedErrorCode(value) narrows a string to it. The same list is published as error_codes in the capability document.
Every response, success or failure, carries the same id in its x-request-id header. Of the 429 codes only rate_limited carries a retry delay; quota_exceeded and every too_many_concurrent_* code carry none.

Errors that are not API refusals

These mean the request succeeded, or never happened, and something else went wrong. They are separate classes, not codes.
  • NoActiveVersionError: datasets().getActive() (Python get_active) on a dataset with no active version. Carries dataset.
  • ImportSettleError: watchImport() (Python watch_import) reached its settle timeout before the version settled. code is settle_timeout; carries importId (Python import_id), dataset, version and the last observed state. When state is FAILED the version did settle; read the failure with getImport() (Python get_import).
  • EvolveDigestMismatchError: a download’s bytes do not match the digest the server stated. Carries expected and actual. Do not trust the stored object.
  • EvolveIncompleteDownloadError: fewer bytes arrived than Content-Length promised. Carries expectedBytes and receivedBytes (Python expected_bytes, received_bytes). Retry the download.
  • EvolveUploadTimeoutError, TypeScript only: an upload saw no socket activity for 600 seconds. Retry the upload.

The codes

Grouped by the door that returns them. The HTTP status is stated where it is fixed.

Keys and limits

Input

Datasets and publishing

Jobs, trials, regrades

Analyze and check

Job upload

The upload door itself answers four codes: invalid_multipart (400), invalid_input (400), upload_too_large (413) and too_many_concurrent_job_uploads (429). Everything else arrives on the import’s failure, with no HTTP status.

Registered agents and skills

Organizations

org_not_found, org_slug_taken, org_forbidden, org_personal_immutable, org_last_owner, org_in_use, org_member_not_found, invite_not_found and invite_invalid belong to team accounts. The SDK reads organizations only, so only org_not_found and org_forbidden can reach it today. internal_error is the server’s own failure; quote requestId.