demo · v136

WebAuthn immediate UI

A get() with mediation: "immediate" shows the chooser only if the browser already has a credential for this RP. No credential ⇒ instant reject with NotAllowedError and no UI.

Probing…
Behind a flag. Enable chrome://flags/#enable-experimental-web-platform-features, then create a passkey for this origin (via the conditional-create demo) before clicking the button below to see the no-UI branch.
duration
outcome
credential.id (b64u)

the code

try {
  const cred = await navigator.credentials.get({
    publicKey: {
      challenge: new Uint8Array(32),
      rpId: location.hostname,
      timeout: 60_000,
    },
    mediation: "immediate",
  });
} catch (e) {
  // NotAllowedError = nothing locally; fall back to your password UI.
}

see also