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 vialsof). - When the user authorizes, the browser is answered and redirected to the success page — yet the token is never persisted (
~/.gemini/jetski-standalone-oauth-tokenmtime unchanged, no keychain item), andlanguage_server.logcontains zero lines about the exchange: no success, no failure, not even thestate mismatchmessage that exists in the binary. - In exactly one attempt (of 10+), the exchange did complete server-side: token written,
refresh_tokenvalid, LS logsAuth succeededon every startup,loadCodeAssistsucceeds — and the UI still never leaves the Welcome screen, across multiple app restarts. - In the shipped UI bundle, the only
window.deepLink.onDeepLinkregistration matches exclusivelyhostname === "teleport" && pathname === "/ai_studio". Theantigravity://oauth-successURL emitted by the auth-success page is parsed and silently ignored. - Account: personal
@gmail.com(nohdclaim), satisfying the FAQ’s account-type requirement.
Controlled experiments (ruling out local causes)
- Keychain experiment: temporarily set
login.keychain-dbas first/default keychain (verified viasecurity list-keychains), performed a full sign-in, restored afterwards. Polledsecurity find-generic-password -s "Antigravity Safe Storage"every 6s: the app never attempts to create its<App> Safe Storageentry at all (other Electron apps on this machine all have theirs). NoerrSecDecode/decrypt errors in any log. - 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 asSetEnableBusinessLogin called with enable: truebursts): authorization completed again, still no token, zero exchange log lines, back to Welcome. - 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:
- the UI bundle’s deep-link path for
antigravity://oauth-successis dead (teleport-only filter), and - the LS-side
auth/callbackhandler 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/callbackhandler (at minimum: log exchange success/failure with reason). - Restore/handle the
antigravity://oauth-successdeep-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.)