demo · v136

Error Decision Flow

Every reject path navigator.credentials.get({ mediation: 'immediate' }) can take, mapped to the right fallback UI. The page also runs a live call so you can see which path your platform takes today.

NotAllowedError

user cancelled OR no credential
Reveal the password form. Don't retry — immediate mode treats absence as authoritative.

InvalidStateError

authenticator unable to honour request
Fall back to traditional conditional mediation. Surface a "sign in with passkey" button instead.

NotSupportedError

no platform authenticator
Hide the passkey hint entirely. Default to password + 2FA.

SecurityError

RP id mismatch / not allowed-list
Server config bug. Log it to telemetry — don't retry.

resolve(credential)

silent immediate success
Submit credential to server, log the user in. No UI required.

your platform

click "Run a live immediate get()".

see also