Error codes
Branch on code, never on title or detail. New codes can be added within v1, so treat a code you don't recognise by its HTTP status. See Errors for the response shape.
- 400
invalid_requestmalformed JSON, unknown query parameter value or wrong type.
- 400
invalid_cursorthe
cursoris malformed or expired. - 400
organisation_header_requiredan OAuth caller omitted
Vojo-Organisation. - 400
unsupported_api_versionVojo-Versionis not a known version date. - 401
unauthenticatedno credential was sent.
- 401
invalid_tokenthe access token or secret key is invalid, expired or revoked.
- 402
entitlement_limit_reachedthe org's plan does not allow more of this feature (
feature_key,limit,used). - 402
storage_quota_exceededthe upload would exceed the org's storage quota (
limit,used). - 403
insufficient_scopethe token/key lacks the operation's required scope.
- 403
permission_deniedthe user lacks the required Permissions flag in the active org.
- 403
operator_access_requiredclient / installer personas cannot use network endpoints.
- 403
organisation_access_deniedthe caller has no access to the org in
Vojo-Organisation, or a secret key's header does not match its org. - 404
not_foundthe resource does not exist or belongs to another organisation (never 403, to avoid leaking existence).
- 409
duplicate_namea resource with this name already exists in the org.
- 409
harvester_already_assignedthe harvester is already paired to another screen.
- 409
screen_already_pairedthe screen already has a different device paired.
- 409
no_quality_readingsthe screen has no quality readings to calibrate from yet.
- 409
idempotency_key_reusedthe
Idempotency-Keywas used with a different request body. - 409
idempotency_request_in_progressa request with this
Idempotency-Keyis still being processed. - 409
delivery_not_retryableThe delivery is pending, succeeded or was skipped, or its endpoint is not active, so it can't be retried.
- 413
payload_too_largethe declared upload size exceeds the per-object maximum (2 GB).
- 422
validation_failedone or more fields failed validation; see
errors[]. - 422
upload_not_foundthe referenced upload does not exist, is not this org's, or was never PUT.
- 422
upload_mismatchthe stored object does not match what was declared (size or content type).
- 429
rate_limitedtoo many requests; retry after
Retry-Afterseconds. - 500
internal_errorunexpected server failure. Safe to retry idempotent requests.