Skip to main content
Emitted when a session’s expires_at is reached and no attempt was confirmed. A scheduled job sweeps expired sessions, marks them expired, and emits this event.

When it fires

A session expires when 60 minutes have elapsed since created_at and it has not reached completed (a confirmed attempt or three not-confirmed terminal attempts) or cancelled. In-progress attempts inside an expired session are marked failed with failure_code: session_expired. This event fires at most once per session.

Payload

Fields

string
Always verification.session.expired.
number
Contract version the session was created against.
string
Unique event ID. Use as an idempotency key.
string
The session that expired.
object
Empty object. Reserved for future fields.

Handler outline

Treat an expired session as a definitive “user did not finish in time”. If you need another Kayle check, create a fresh session.