# X_PASSKEY_CHALLENGE_EXPIRED

## Means

a passkey ceremony named a challenge that is unknown, already used or past its ttl

## Typical cause

the response was replayed, the options were issued by another ceremony, or the person took longer than the challenge ttl

## Fix

`x errors explain X_PASSKEY_CHALLENGE_EXPIRED --json, then fetch fresh options and run the ceremony once: await passkeys.loginOptions()`

[Auth and sessions](/error-codes#auth-and-sessions)
