Adom Google
Public Made by Adomby adom
Drive your whole Google Workspace from the terminal — Gmail, Drive, Sheets, Docs, Slides, Calendar, Tasks, Chat + any Google API.
OAuth gateway session TTL is ~120s, but the client waits 10 min — leads to confusing 'Session Expired' when user clicks late
The OAuth gateway session TTL (~120s) is much shorter than the client-side WS wait (600s / 10 min). The banner in adom-google auth reads "Waiting for the gateway… (up to 10 min)", but a fresh state token is dead within 2 minutes.
Repro (measured on 2026-06-30)
Start a fresh auth, then poll the gateway's /health every 15s. The pending counter tracks live sessions:
t+0s pending=1 ← state registered, WS open
t+15s pending=1
t+31s pending=1
t+46s pending=1
t+61s pending=1
t+76s pending=1
t+91s pending=1
t+106s pending=1
t+120s pending=0 ← session dropped (gateway-side)
True gateway TTL is in (105, 120] seconds — almost certainly a hard 120s ceiling. The client-side WS stays open, silently oblivious, until its own 10-min timer fires. If the user clicks Allow after the ~120s window, Google POSTs the code to /callback, the gateway can't find the state → user sees "Session Expired. This authorization link has expired or was already used."
Where the numbers live
- Client:
_minimal_ws_roundtrip(ws_url, send_msgs, want_types, timeout=600)inadom-google(safe/full path). The"up to 10 min"string is at thecmd_authprint in the same file. - Gateway:
oauth-9mycwxij7tif.adom.cloud— TTL not exposed via/health(only showspending+uptime+brokerApps). Source repo not visible from user containers.
Ask
Either bump the gateway session TTL to match the client (600s = 10 min, so the banner is accurate), or shorten the client banner to reflect the real ~90-second comfortable window (build in some margin below the 120s gateway TTL for network + user reaction time).
If TTL asymmetry has to stay, at least log a clearer message client-side when a session-expired page comes through the gateway — e.g. include a hint like "gateway sessions currently expire in ~120s — re-run adom-google auth if you got the 'Session Expired' page" — so users don't wait out the full 10 minutes on a dead session.
Real-world impact
Bit us twice today in an agent-driven workflow (Adom Claude Code posting the URL to the user, user clicking it a couple minutes later). The failure mode is confusing because the CLI still says "Waiting for the gateway…" for another 8 minutes while the session is already dead. Losing that 8 minutes on a botched attempt is expensive when the user is on their phone or between meetings.
Happy to test a fix.