[GOWS 2026.8.1] Passkey assertion accepted (201), but session stays PASSKEY_REQUIRED
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 43/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- go, typescript
- Ambito
- backend-api-design
Direzione di ricerca
Start by tracing the GOWS passkey endpoint and session status handling around SendPasskeyResponse(), then inspect the whatsmeow fork’s handling of PairPasskeyConfirmation and crsc_continuation. Reproduce with the listed GOWS version and sanitized logs to determine whether the IQ result arrives without a continuation event. Done means the session progresses, exposes a confirmation step, or reports an actionable error after an accepted assertion.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
With WAHA GOWS 2026.8.1, the WebAuthn assertion is successfully generated and accepted by the passkey endpoint, but the session never receives the expected continuation event. It remains in PASSKEY_REQUIRED until the pairing attempt expires or is stopped.
This is the post-assertion step described in tulir/whatsmeow#1186: after SendPasskeyResponse(), the client should receive PairPasskeyConfirmation (or proceed to successful pairing). Neither happens.
Environment
- WAHA image:
devlikeapro/waha:gows-2026.8.1 - Engine: GOWS
- GOWS version:
v1.0.45 - whatsmeow fork revision used by GOWS:
devlikeapro/whatsmeow@78592f479441 - Primary account: WhatsApp Business on iPhone
- WebAuthn handoff: official WAHA Chromium extension on desktop Chrome/macOS
- Pairing method: QR code
Reproduction
- Create and start a fresh GOWS session.
- Scan the QR code from WhatsApp Business on the iPhone.
- Session moves to
PASSKEY_REQUIRED. - Fetch the challenge with:
GET /api/{session}/auth/passkey/challenge - Pass the challenge unchanged to the official WAHA extension.
- Approve the cross-device passkey request on the iPhone.
- Submit the returned
credential.toJSON()unchanged to:
POST /api/{session}/auth/passkey - The endpoint returns HTTP 201.
- Poll the live session status.
Observed result
- The assertion is structurally valid:
type = webauthn.get- origin is
https://web.whatsapp.com - authenticator RP ID hash matches
whatsapp.com - user verification is present
- authenticator attachment is
cross-platform, consistent with the iPhone handoff
POST /api/{session}/auth/passkeyreturns 201.- The session stays in
PASSKEY_REQUIREDfor more than 110 seconds. - No
PASSKEY_CONFIRMATION_REQUIREDstatus is emitted. - No confirmation code becomes available.
- No
WORKINGstatus is reached. - No passkey error is surfaced.
- The session is not stopped or restarted while waiting.
The flow has been reproduced on repeated fresh attempts.
Expected result
After the assertion is accepted, the session should either:
- transition directly to
WORKING; or - emit
PASSKEY_CONFIRMATION_REQUIRED, expose the confirmation code, and allowPOST /api/{session}/auth/passkey/confirm; or - surface a protocol/passkey error instead of remaining silently blocked.
Similar report
evolution-foundation/evolution-go#107 reports the same behavior for a WhatsApp Business account: a correct WebAuthn assertion is submitted, the socket stays alive, but WhatsApp never sends PairPasskeyConfirmation.
Questions
- Is this silent post-assertion state known for some WhatsApp Business accounts?
- Does GOWS log or expose whether
SendPasskeyResponse()received the expected IQ result but never receivedcrsc_continuation? - Is an additional handoff/continuation step required for these accounts?
- Which debug logging can we enable to provide a sanitized wire-level trace?
- Should this be escalated upstream to whatsmeow, or could it be specific to the devlikeapro fork/GOWS integration?
We can provide sanitized timestamps and debug logs, but will not publish the raw challenge or authenticator assertion.
- Lingua principale
- TypeScript
- Stelle
- 7.6k
- Fork
- 1.8k
- Merge medio
- 2g 21h
- PR unite (30g)
- 7
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di devlikeapro/waha
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
devlikeapro/waha#2322 ·
I maintainer di solito rispondono entro 2 giorni
-
patron:PLUS
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
devlikeapro/waha#2167 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
[GOWS] - PUT /api/{session}/profile/status fails with "graphql error: 400 Bad Request" on 2026.9.2Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
devlikeapro/waha#2326 ·
I maintainer di solito rispondono entro 2 giorni
-
[Security] Update Node.js to 24.22.1+ to fix CVE-2026-111497 (Brotli decoder RCE)Forse già presa @lucamzanon l’ha presa 1 giorno fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
devlikeapro/waha#2324 · 2 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 52/100
devlikeapro/waha#2321 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di devlikeapro/waha
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
awesome-dsh-plugin/awesome-dsh-plugin#9184 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
farion1231/cc-switch#8829 ·
I maintainer di solito rispondono entro 1 giorno
-
[core-client] Remove unused hand-maintained transport helpers after the definition-table cutoverApertadoc-audit enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100