Errors
A failure is an RFC 9457 problem (application/problem+json): type (an anchor below), title, status, detail, and the service's code and context.
not_found 404
Nothing matches the reference given, the path answers no operation, or the store is unknown.
method_not_allowed 405
The path answers other methods, which the Allow header lists.
not_entitled 403
The resource exists but the customer may not reach it: they hold no access to it, or a file capability is not this token's.
not_permitted 401, 403 or 429
context.reason says why: credential (401, sign the customer in again: the token is missing, expired, revoked, or was issued for another service; with a publishable key, the key is unknown, revoked or another store's), scope (403, the customer did not grant the scope), principal (403, the token may not act on this store or row, or a publishable key called an operation it doesn't take), plan (403, the store's plan does not include it), limit (429, see the limits guide).
conflict 409
The call clashes with the current state. context names the field, its current value and what it is blocked_by.
invalid 422
An argument is malformed. context.path points at it (["body"] for the body itself, ["headers", "idempotency-key"] for an idempotency key, which no operation here takes, ["headers", "publishable-key"] for a malformed publishable key or one sent with an Authorization header, ["query", "publishable_key"] for the same in a file's URL, or one empty, sent twice or other than the header's, ["query", "access_token"] for a token in a file's URL, which is never taken) and context.reason says what is wrong. A body over 16 MiB answers 413 with this type; one nesting deeper than 64 levels, or holding more than 100000 objects and arrays or 100000 values, answers 422.
range_not_satisfiable 416
A file was asked for with a Range outside it, or other than one bytes range. Content-Range: bytes */{size} gives its size; ask again for one range within it.
internal 500
The call failed inside the service. A read may be retried with backoff and a bounded number of attempts; a write may have landed, so read the state back first.
unavailable 503
The service could not be reached. Retry as for internal.
client-fault 500
The API itself failed before or after calling the service, and retrying will not help. reached_core says whether the call reached the service; when it did, core_answer is what the service answered: ok means the write landed, a code means it was refused, internal leaves the outcome unknown.
No answer carries Retry-After unless the service said when to retry. No write takes an Idempotency-Key: after a write that failed with internal or unavailable, read the state back before trying again.