Go to developer

Error Reference

Searchable catalog of verified KEYRA errors. Prefer troubleshooting by symptom when you do not have a code yet.

On this page

How to use this catalog

Each entry documents the wire or SDK code, HTTP status when applicable, likely causes, diagnosis steps, fix, retry guidance, and links into API / SDK / troubleshooting pages.

Don't have a code? Start at Troubleshooting.

Error codes

CodeHTTPProductsMeaning
invalid_client401partner-2fa, oauth, sharedKEYRA rejected the client credentials or client id for this request.
invalid_request400partner-2fa, oauth, sharedThe request failed validation (missing/invalid fields).
already_enrolled409partner-2faAn active KEYRA identity already exists for this external user.
invalid_return_url400partner-2fareturnUrl failed Partner callback rules (typically origin match against project callback).
not_enrolled404partner-2faNo active KEYRA identity for this user — cannot start a challenge.
not_found404partner-2faUnknown enrollment, identity, or challenge id for this project.
invalid_token401partner-2fa, oauthToken rejected — wrong, expired, or not valid for this operation.
forbidden403partner-2faOperation rejected for project scope (e.g. consume across projects).
project_mismatch403partner-2faRequest body projectId does not match the authenticated API key’s project.
already_consumed409partner-2faThis Partner verificationToken was already consumed.
expired401 / 410partner-2faToken, challenge, or enrollment link expired.
rate_limited429partner-2fa, oauth, sharedToo many requests for this rate-limit bucket.
server_unavailable503partner-2fa, oauth, sharedKEYRA cannot serve the request (e.g. database unavailable).
feature_disabled503partner-2faPartner 2FA feature flag is off on the auth server.
invalid_redirect_uri400oauthredirect_uri is not an exact match of a registered callback URI.
invalid_grant400oauthAuthorization code exchange failed (code, PKCE, redirect, or reuse).
invalid_verification_token401oauthPOST /verify/validate rejected the verification/access token.
verification_token_already_used409oauthThis OAuth verification token was already consumed by /verify/validate.
popup_blockedoauthThe browser blocked opening the KEYRA popup.
popup_closedoauthThe user closed the KEYRA popup before completion.
verification_deniedoauthHosted verification reported denial / failure to the Web SDK.
callback_state_missingoauthRedirect callback resumed without a state query parameter.
invalid_stateoauthCallback state does not match the value stored in the browser transient (CSRF protection).
KeyraTimeoutErrorpartner-2fa, oauth, sharedAn SDK wait helper exceeded its timeout before a terminal success.

Error shapes

KEYRA surfaces are not a single JSON schema. Documented shapes from the current implementation:

API areaShapeConsistent?Notes
Partner 2FA API{ "error": string, "message": string, "details"?: object }YesCanonical via identityError helper.
OAuth start / token / userinfo{ "error": string, "error_description"?: string }YesOAuth-style bodies.
OAuth /verify/validate failures{ "valid": false, "error": string }PartialOften omits error_description / message — harder for support logs.
OAuth rate limit{ "error": "rate_limited", "error_description": string }YesUses OAuth shape, not Partner message field.
Paste scriptError.message strings / onErrorPartialNo stable typed code field; may surface API error_description when available.
Developer API observabilityNo requestId on Partner/OAuth developer errorsPartialLink-session returns request_id but that is outside the public developer API catalog.

Prefer symptoms?

See all troubleshooting topics →