Emitted when an attempt finishes with a hard failure on one of the verification gates. The payload carries aDocumentation Index
Fetch the complete documentation index at: https://docs.kayle.id/llms.txt
Use this file to discover all available pages before exploring further.
failure_code you can match on. No claims are shared.
When it fires
After the verify pipeline rejects an attempt: an authenticity check failed, a chip authentication check failed, or the selfie failed to match the on-chip portrait. Sessions allow up to three attempts. Each rejected attempt fires this event independently. After the third terminal failure the session moves tocompleted and no further attempts are accepted.
Payload
Fields
Always
verification.attempt.failed.Contract version the session was created against.
Unique event ID. Use as an idempotency key.
The attempt that failed.
The session this attempt belongs to. The session may still allow further attempts.
One of:
passport_authenticity_failed— passive auth failed (SOD signature, DSC chain, data-group hash, or CRL revocation).passport_active_authentication_failed— DG15 was present and the chip’s signature over the challenge did not verify.passport_chip_authentication_failed— DG14 was present and the authenticated key agreement transcript did not verify.selfie_face_mismatch— the face matcher rejected the selfie against the on-chip portrait.
Handler outline
verification.attempt.failed is not a final answer for the session. Wait for verification.attempt.succeeded, verification.session.expired, or verification.session.cancelled before deciding the user can’t be verified at all.