Skip to content

Error codes ​

Every error has a type and a stable code. Branch on code. Read errors for the response shape and the retry rules. Each code below has an anchor, and doc_url in an error response links to it.

Error types ​

TypeHTTPWhen
invalid_request_error400, 404, 409, 422Bad input, missing resource, conflict, validation
authentication_error401Missing or bad key or token
permission_error403Scope, role, or product not enabled
rate_limit_error429Limit hit
idempotency_error409Key reused with a different body, or still in flight
provider_error502An upstream provider failed
api_error500, 503Our fault

Codes ​

idempotency_key_reused ​

Type idempotency_error, HTTP 409. You sent an Idempotency-Key you already used with a different method, path or body. Use a new key for a new action. See idempotency.

idempotency_key_in_use ​

Type idempotency_error, HTTP 409. A request with this key is still running. Wait a moment, then retry with the same key.

product_not_enabled ​

Type permission_error, HTTP 403. The product behind this route is switched off for your tenant. Enable it for the environment you are calling.

Codes by product ​

Each product has its own codes. New codes can appear at any time. If you meet a code you do not know, treat it as its type.

Platform, Access and Streams ​

CodeHTTPWhen
insufficient_permissions403The key or user cannot call this endpoint. A publishable key on a secret-only route gives this.
test_mode_unavailable403A test key called an endpoint that has no test mode yet.
access_denied403The customer has no active entitlement. error.details.reason says why.
device_limit_reached403The entitlement's max_devices is used up.
view_limit_reached403The entitlement's max_views is used up.
session_ended403A heartbeat for a session that is over. error.details.reason is replaced_by_newer_session, missed_heartbeats, entitlement_inactive or client.
concurrency_limit_reached409Another session is open and the policy is reject_new.
entitlement_revoked409You repeated a grant that was revoked. Grant again with a new source_ref.
invalid_state409The entitlement cannot be suspended or resumed from its current state.
external_id_taken409Another object of this type already has this external_id.
invalid_customer_token401A customer token was rejected. error.details.reason says why. See customer tokens.
stream_disabled409The live stream is switched off.
asset_not_ready409The asset is still processing.
no_playback_id409The stream or asset has no playback id.
signing_not_configured409Playback signing is not set up for the account.
dedicated_environment_required409Signing keys need an account with its own video environment.
resource_not_found404The stream or asset is not yours.
provider_rejected422The video network refused the request. message says why.
provider_error502The video network could not be reached. Retry.
validation_failed422The request is invalid. error.details lists each field.

Other products add their codes as they reach the API reference.

Vabu OS documentation