[macOS] Sign-in never completes on 2.19.1: OAuth callback answered but token never persisted (with controlled experiments)

Environment: Antigravity 2.19.1 (com.google.antigravity, build 6046815158665216) / macOS 26.6.2 arm64 / Chrome as default browser / in-app updater reports “up to date”.

Symptom: Browser OAuth completes (“You have successfully authenticated” → antigravity.google/auth-success), but the desktop app returns to the Welcome/Sign-in screen every time. Reproduced 10+ times over two days.

What we verified locally

  • The language server generates redirect_uri=http://localhost:<random>/auth/callback (PKCE S256) and binds an ephemeral listener on that exact port while sign-in is pending (confirmed via lsof).
  • When the user authorizes, the browser is answered and redirected to the success page — yet the token is never persisted (~/.gemini/jetski-standalone-oauth-token mtime unchanged, no keychain item), and language_server.log contains zero lines about the exchange: no success, no failure, not even the state mismatch message that exists in the binary.
  • In exactly one attempt (of 10+), the exchange did complete server-side: token written, refresh_token valid, LS logs Auth succeeded on every startup, loadCodeAssist succeeds — and the UI still never leaves the Welcome screen, across multiple app restarts.
  • In the shipped UI bundle, the only window.deepLink.onDeepLink registration matches exclusively hostname === "teleport" && pathname === "/ai_studio". The antigravity://oauth-success URL emitted by the auth-success page is parsed and silently ignored.
  • Account: personal @gmail.com (no hd claim), satisfying the FAQ’s account-type requirement.

Controlled experiments (ruling out local causes)

  1. Keychain experiment: temporarily set login.keychain-db as first/default keychain (verified via security list-keychains), performed a full sign-in, restored afterwards. Polled security find-generic-password -s "Antigravity Safe Storage" every 6s: the app never attempts to create its <App> Safe Storage entry at all (other Electron apps on this machine all have theirs). No errSecDecode/decrypt errors in any log.
  2. Fresh-profile experiment: backed up and deleted the whole Electron profile (~/Library/Application Support/Antigravity/: Cookies, Local Storage, Session Storage, Network Persistent State), relaunched into a pristine profile with a fresh LS instance. Two new sign-in attempts (09:58:10 and 09:58:27 local, visible as SetEnableBusinessLogin called with enable: true bursts): authorization completed again, still no token, zero exchange log lines, back to Welcome.
  3. Version verification: the official auto-updater service self-reports “Stable Version: 2.19.1. Rolled out to 100%”; no beta/insider channel exists; all sign-in fixes in the changelog (2.16.0, 2.18.1) predate 2.19.1.

Surviving explanation

The renderer’s Login state machine never receives the completion signal:

  1. the UI bundle’s deep-link path for antigravity://oauth-success is dead (teleport-only filter), and
  2. the LS-side auth/callback handler is silent on both its success and failure branches, so the Login RPC never resolves and nothing is diagnosable from logs.

Requests

  • Add diagnostics/logging to the auth/callback handler (at minimum: log exchange success/failure with reason).
  • Restore/handle the antigravity://oauth-success deep-link path in the UI bundle.
  • Also reproducible: the app hangs on quit (“Waiting for migrations to complete”, requires SIGKILL) — possibly related to the same shutdown path.

Happy to provide full language_server.log / main.log excerpts (secrets redacted) if useful.

(Filed on behalf of an affected user; all local experiments were run with the user’s consent, and everything irreversible was backed up and restored.)

Hi @Ok_saw,

Welcome to the Forum,

Thank you for the report. Your controlled experiments make it clear that this isn’t caused by keychain, profile or account-type issues on your side. To help us narrow this down the issue further, could you check the following:

  • Antigravity v2.21.1 was released on October 7. If the in-app updater still shows 2.19.1, please install v2.21.1 or latest release from the Download page and try signing in again.
  • During sign-in, did you choose the personal Google account option or Business account? Your description mentions SetEnableBusinessLogin with enable: true, so we’d like to confirm which flow was used.
  • Does signing in with the same account in the Antigravity CLI succeed?
  • If possible, please submit an in-app bug report from the sign-in screen with the language_server.log and main.log excerpts you mentioned, covering one sign-in attempt and one hang on quit.