Originally created by: athanclark
test/passkeys-live-postgres.mjs failed once in CI and passed when re-run, on PR [#464], whose changes don't touch sign-in.
Where: the job "PostgreSQL 16 / native pgmp / accounts and sharing" (run).
What failed: after signing out, the test opens /login and waits for the Sign in with a passkey button, which never appeared within 30 seconds:
locator.waitFor: Timeout 30000ms exceeded.
- waiting for getByRole('button', { name: 'Sign in with a passkey' }) to be visible
at test/passkeys-live-postgres.mjs:212:16
That's the step "Signing in with the passkey alone, from the button", which comes after the two-factor step and signOut().
To find out: why the login page sometimes doesn't show the button. It could be the session still being read as signed in, the passkey autofill request from the previous step still pending, or the page loading before sign-out has taken effect. Then make the test, or the page, reliable.
🤖 Generated with Claude Code
Originally posted by: athanclark
It happened again, on PR [#491], whose changes don't touch sign-in (run). This time it failed at a different step,
test/passkeys-live-postgres.mjs:284:That step signs out, opens
/loginwith the authenticator refusing, and waits for the autofill'sPOST /api/auth/passkeys/sign-into be refused (401). The request never came.Both failures have the same shape:
/login, and then the sign-in form never reaches its ready state. The first time the Sign in with a passkey button didn't show; this time the autofill request wasn't sent.GET /api/sessionto answer, with modeloginandpasskeySignIn.Two possibilities fit, either of which would point at the session read rather than at passkeys:
PR [#496] makes the test print the card's text and the session when the button doesn't appear. This second step should print the same when it times out; I'll add that.
🤖 Generated with Claude Code
https://claude.ai/code/session_011fFY8eruEi1xAkkMBni13B
Related
Tickets:
#491Tickets:
#496