kyve.dev

Error codes

Every stable error code the platform can return.

All error responses use the same envelope:

{
  "error": {
    "code": "invalid_api_key",
    "message": "The provided API key is invalid or has been revoked.",
    "request_id": "req_01j..."
  }
}

code is stable — treat it as the machine-readable identifier. message is human-readable and may change between releases. request_id is always echoed in the KYC-Request-Id response header.

Catalog

CodeHTTPMeaning
authentication_required401No credentials were supplied.
invalid_api_key401API key is malformed, revoked, or belongs to another mode.
session_expired401Portal/admin session or SDK token has expired.
permission_denied403The caller is authenticated but lacks the required role.
tenant_suspended403The tenant account is suspended.
live_mode_not_activated403Live keys refused because billing is not set up.
insufficient_balance402Prepaid wallet cannot cover the next verification.
plan_not_found404Requested plan slug is not active in billing_plans.
topup_not_found404AIO callback referenced a top-up the platform doesn't know.
invalid_signature401AIO or Stripe webhook signature failed verification.
not_found404The resource does not exist or is not visible to this caller.
verification_not_found404Verification ID unknown within this tenant.
method_not_allowed405HTTP method mismatch.
idempotency_conflict409Same Idempotency-Key reused with a different body.
verification_not_cancelable409Verification has already reached a terminal state.
check_not_required422The iframe tried to submit a check that the resolved flow does not require.
validation_error422Request body failed schema validation. Details in fields.
rate_limited429Rate limit exceeded. Retry after Retry-After seconds.
internal_error500Something broke on our side. Request ID required when filing.
dependency_unavailable503A downstream service (AI, database, queue) is currently down.

Always log the request ID

When something goes wrong, record the request_id — it's the fastest way for us to trace the request through the platform.

On this page