Skip to content

Errors and states

state Meaning What to do
waiting started, no answer yet keep polling; the box does this for you
verified the wallet’s answer passed every check; claims holds the fields read it on your server with the secret key and continue
failed an answer arrived but did not pass; error says why show a retry; log error
cancelled the holder dismissed the request in the wallet offer to try again
expired the request window passed, or the session id is unknown the box shows Refresh and starts a new session

Common error values on failed:

error contains Cause Fix
issuer or trust the credential’s issuer is not on your tenant’s list ask us to add the issuer, or the holder has a credential from an unexpected issuer
signature the issuer signature or the device signature did not verify an old or tampered wallet build; retry with a current wallet
expired the credential itself has expired the holder needs a renewed credential
docType the wallet answered with a different document type the holder picked the wrong card; ask again

Rules: an expired session never becomes verified (HTTP 410); a second submission returns the first result; a late “closed” never overrides a result; unknown ids read as expired.

decision Meaning What the operator does
ACCEPT signature valid, issuer trusted, within validity, not revoked proceed; compare the portrait
REJECT one of those failed; reason says which refuse; the reason is shown on the result screen
INCONCLUSIVE the checks passed but the revocation status could not be established (offline, no status data) follow your policy: accept, retry online, or refuse

Session states before the result: AwaitingEngagement → Connecting → Verifying → Done or Failed (Bluetooth dropped, the holder cancelled, no matching credential).

Where State Meaning
Issuing SdkResult.Failure from previewOffer / issueFromOffer the offer is invalid, expired, or the issuer refused; error.message says which
Presenting PresentmentState.Failed with DECLINED the holder chose not to share, or backed out of the face check
Presenting PresentmentState.Failed with UNSUPPORTED no held credential matches the request
Presenting PresentmentState.Failed with FACE_CHECK_FAILED the live face did not match the credential’s photo (after the allowed tries); nothing was shared
Presenting PresentmentState.Failed with FACE_CHECK_UNAVAILABLE the face check could not run: no usable photo on the credential, no camera, or camera access refused; nothing was shared
Preparing SdkResult.Failure from prepareForSharing with FACE_CHECK_UNAVAILABLE the credential’s photo has no usable face; warn the holder before they need to share