Skip to main content

Errors

Errors share one envelope: { "error": { "code", "message", "request_id", … } }. Branch on code, never on message. Quote request_id when you contact support.

Requests​

CodeStatusMeaning, and what to do
VALIDATION_ERROR400A parameter or field is missing or invalid; the message says which.
MISSING_AUTH_HEADER401No Authorization: Bearer … header.
INVALID_TOKEN401The key does not exist or was revoked.
USER_NOT_FOUND401The account of the key was deleted.
INSUFFICIENT_SCOPE403The key lacks a scope; required_scopes lists it.
PRO_REQUIRED403Spaces scanned with the app need Space Context Pro.
NOT_FOUND404No such space, scan or record for this key (test and live data are separate).
RATE_LIMIT_EXCEEDED429Wait Retry-After seconds (or retry_after for daily limits).
INTERNAL_ERROR500Retry later; if it persists, contact support with the request id.

Spaces, search and questions​

CodeStatusMeaning
ENRICHMENT_PENDING409A space scanned with the app is being screened; retry in a minute, or use a key with spaces:sensitive.
SEARCH_UNAVAILABLE503Search is temporarily unavailable.

When the deep pass of a space scanned with the app could not finish, the document stays at the base level with enrichment.status: "failed"; reading it again retries (a few times). STALE_ANALYSIS in that case means the space was recorded again in the meantime.

Scans and uploads​

CodeStatusMeaning
INVALID_STATE409The scan is not in a state for this (for example uploading to a started scan, deleting a space with a scan in progress).
UPLOAD_INCOMPLETE409Start refused: frames missing, or the video missing or of another size than declared.
INVALID_CONTENT_TYPE415Not a JPEG, PNG or WebP frame, or not an MP4, MOV or M4V video.
FILE_TOO_LARGE413Over 2 MB per frame, or over the video size of the upload.
EMPTY_FILE400The upload has no bytes.
SCANS_IN_PROGRESS429Three scans are already processing; start again when one finishes.
INSUFFICIENT_FUNDS402The balance does not cover the scan; balance_cents and price_cents say by how much.
SPENDING_CAP_REACHED402The key's monthly cap is reached.

A scan that fails after starting carries its reason in scan.error.code, and is refunded:

scan.error.codeMeaning
VIDEO_UNREADABLEThe video could not be decoded.
VIDEO_TOO_LONGOver 20 minutes.
ANALYSIS_EMPTYNo space was recognised in the frames.
AI_ANALYSIS_FAILED, AI_OVERLOADEDThe analysis failed; scan again later.
PROCESSING_TIMEOUTProcessing took more than 2 hours.
UPLOAD_EXPIREDNot started within 24 hours (status cancelled, never charged).

Evidence frames​

CodeStatusMeaning
SIGNED_URL_INVALID401Not a valid evidence link.
SIGNED_URL_EXPIRED401The link expired; read the document again for a fresh one.
MEDIA_NOT_FOUND404The frame no longer exists.

Console​

CodeStatusMeaning
INVALID_CREDENTIALS401Wrong or expired sign-in code.
PAYMENTS_UNAVAILABLE503Card payments are temporarily unavailable.
PAYMENT_FAILED502Stripe could not create the payment page; try again.