Google account login: session revoked server-side immediately (google_gaia_logged_out) after successful pairing
Environment
- openmessage: built from source,
main at commit aa5295d (2026-07-13)
- OS: Windows 11, Go 1.26.5
- Account: personal Gmail (not Workspace, not Google Fi)
- Google Messages QR pairing is no longer offered (US), so account/cookie login is the only option
Summary
Google account login pairs successfully every time, then the moment serve connects, Google reports the session as logged out (google_gaia_logged_out) and the pairing is invalidated (session.json is deleted by Unpair). I could not get a session to survive past the first connect, following the documented procedure exactly.
Steps to reproduce
- In a Firefox private window, sign in at
https://accounts.google.com/AccountChooser?continue=https://messages.google.com/web/config and do not navigate away.
- Copy the
/web/config request as cURL (bash).
- Pipe it into
pair --google-stdin, then tap the emoji on the phone. Pairing reports success.
- Run
serve.
Actual result
INF Connected to Google Messages
INF Listen recovered
INF Reconciling recent conversations
INF No cached SMS history found; starting deep startup backfill
ERR Failed to decode incoming RPC message error="failed to decrypt data event: HMAC mismatch" message_id=...
WRN Google account logged out server-side — session invalid
WRN Disconnected from Google Messages
WRN Skip count is non-zero in postConnect, waiting longer skip_count=21
WRN Checking bugle default on connect is taking long
The error="Google Messages supervisor entered blocked (reauth_required: google_gaia_logged_out)" variant also appears on some runs.
What I tried (all failed the same way)
- Firefox private window (no Device Bound Session Credentials), kept open and signed in through the serve step.
- The exact
AccountChooser?continue=.../web/config URL, no navigating away.
- Confirmed the cookie set included SID, HSID, SSID, OSID, APISID, SAPISID, and
__Secure-1PSIDTS.
- Full clean slate: stopped all processes, moved the data dir aside so a fresh
messages.db and session.json were created (the HMAC mismatch message IDs changed afterward, confirming the reset).
- Unlinked all existing paired devices in Google Messages and checked account security activity for a sign-in challenge.
- Personal Gmail, so no Workspace session-binding policy, and not Google Fi.
- Edge and Chrome captures behave the same but fail even faster, which is consistent with DBSC binding the cookies to the browser. Firefox removes that variable and the session still gets revoked, which points to Google revoking exported web sessions at the account level.
Questions
- Has anyone gotten a personal Gmail account login to persist recently, given Google's DBSC / session-binding rollout? If so, what browser and steps?
- Are the
failed to decrypt data event: HMAC mismatch events relevant to the logout, or just leftover queued events that are safe to ignore?
Willing to help
Can provide full debug logs (OPENMESSAGES_LOG_LEVEL=debug) if useful.
Google account login: session revoked server-side immediately (
google_gaia_logged_out) after successful pairingEnvironment
mainat commitaa5295d(2026-07-13)Summary
Google account login pairs successfully every time, then the moment
serveconnects, Google reports the session as logged out (google_gaia_logged_out) and the pairing is invalidated (session.jsonis deleted byUnpair). I could not get a session to survive past the first connect, following the documented procedure exactly.Steps to reproduce
https://accounts.google.com/AccountChooser?continue=https://messages.google.com/web/configand do not navigate away./web/configrequest as cURL (bash).pair --google-stdin, then tap the emoji on the phone. Pairing reports success.serve.Actual result
The
error="Google Messages supervisor entered blocked (reauth_required: google_gaia_logged_out)"variant also appears on some runs.What I tried (all failed the same way)
AccountChooser?continue=.../web/configURL, no navigating away.__Secure-1PSIDTS.messages.dbandsession.jsonwere created (theHMAC mismatchmessage IDs changed afterward, confirming the reset).Questions
failed to decrypt data event: HMAC mismatchevents relevant to the logout, or just leftover queued events that are safe to ignore?Willing to help
Can provide full debug logs (
OPENMESSAGES_LOG_LEVEL=debug) if useful.