Skip to content

[Bug] Self-contained nightly service breaks Antigravity preflight by invoking t3 with -e #11767

Description

@iiloni

What happened

An existing Antigravity thread failed with ACP transport operation failed. Removing and reinstalling the Antigravity runtime then downloaded the runtime, but validation failed with The downloaded Antigravity runtime could not start in this environment.

T3 Code was running as a Linux background service installed through npx, with Android and remote desktop clients.

Diagnosis

This is a regression in the self-contained T3 executable, not an incompatible Antigravity binary or host environment.

prepareAntigravityProfile obtains HostProcessExecutablePath and invokes that executable with -e <browser-helper-source> to verify browser suppression. In the npm-based service used before the self-contained release changes, that executable is Node and accepts -e. In 0.0.41-nightly.20260914.1707, the service process executable is the self-contained t3 CLI. It parses -e as a T3 CLI flag, prints Unrecognized flag: -e in command t3, and exits 1.

The profile preflight converts the unexpected exit/output to a generic AcpTransportError. AntigravityInstallation.validate wraps that again as The downloaded Antigravity runtime could not start in this environment, hiding the real failure.

The same preflight runs before normal Antigravity session startup, explaining both symptoms. The direct reproduction below fails before agy_acp_server is launched. Current main at ec5ede5e6a1f2f9d564a5834462f47d1b7e5f0ec still has the same relevant implementation.

Steps to reproduce

  1. On Linux x64, install t3@0.0.41-nightly.20260914.1707 as a background service using the npm launcher.
  2. Configure the Antigravity provider and start or resume an Antigravity thread.
  3. Observe ACP transport operation failed during prepareAntigravityProfile / session/start.
  4. Remove and reinstall the managed Antigravity runtime.
  5. The archive downloads, but validation fails with The downloaded Antigravity runtime could not start in this environment.
  6. Deterministic minimal reproduction: invoke the installed self-contained t3 executable with the same -e browser-helper arguments used by prepareAntigravityProfile. It exits 1 because t3 does not recognize -e.

Version

0.0.41-nightly.20260914.1707 (9375c779707fb95c06670db6da87441720b2d2e2)

Environment

  • Linux x64, kernel 6.19.8-3.surface.fc43.x86_64
  • Node v26.8.2 in the triage shell
  • T3 Code user-level systemd background service, installed through npx
  • Android app and desktop app on another machine as clients
  • Antigravity with personal Google OAuth

Evidence

$ <t3-runtime>/t3 -e '<the browser helper used by prepareAntigravityProfile>' -- https://example.invalid/t3-antigravity-browser-preflight
ERROR
  Unrecognized flag: -e in command t3
exit=1

Relevant trace sequence (UTC, paths redacted):

2026-09-14T16:55:10Z  prepareAntigravityProfile       5.40 ms  AcpTransportError: ACP transport operation failed.
2026-09-14T16:55:10Z  startSession                   55.48 ms  ProviderAdapterRequestError: ... session/start: ACP transport operation failed.
2026-09-14T17:11:59Z  prepareAntigravityProfile     728.57 ms  AcpTransportError: ACP transport operation failed.
2026-09-14T17:11:59Z  AntigravityInstallation.validate 730.21 ms  The downloaded Antigravity runtime could not start in this environment.

After rolling back, the same preflight through the Node executable succeeds deterministically:

__T3_ANTIGRAVITY_AUTH_URL__"https://example.invalid/t3-antigravity-browser-preflight"
exit=0

Related issues

No exact duplicate was found by searching for the two user-facing errors and Unrecognized flag: -e.

Fix applied or workaround

Rolled the service back to 0.0.41-nightly.20260913.1675, which predates the self-contained executable transition:

npx --yes t3@0.0.41-nightly.20260913.1675 service update --allow-downgrade

The service is enabled and active after rollback, the browser-helper preflight exits 0 with the expected marker, and Antigravity has been reinstalled successfully with provider status ready.

The newer t3 update <old-version> --allow-downgrade path could not perform this rollback because the older nightly did not publish a self-contained release archive; invoking the older npm CLI's service update command worked.

Filed by

Codex (GPT-5.6-Sol High) via t3 triage.

Activity

  1. changed the title [-]Self-contained nightly service breaks Antigravity preflight by invoking t3 with -e[/-] [+][Bug] Self-contained nightly service breaks Antigravity preflight by invoking t3 with -e[/+] on Sep 14, 2026
  2. juliusmarminge commented on Sep 14, 2026

    @juliusmarminge
    Member

    Triage

    Confirmed on current main (05e3bcbc). This is a T3 regression from the self-contained executable, not a bad Antigravity binary or host environment.

    prepareAntigravityProfile still assumes HostProcessExecutablePath (process.execPath) is Node and runs:

    <execPath> -e '<browserHelperSource>' -- <preflight-url>
    

    On the pre-SEA npm service that executable is Node, so -e works. After #11316 / #11607, a background service started through npx is the self-contained t3 CLI. Effect CLI then prints Unrecognized flag: -e in command t3 and exits 1.

    That preflight runs in two places:

    1. Antigravity session start (AntigravityDriver → prepareAntigravityProfile) → generic AcpTransportError / ACP transport operation failed
    2. Managed install validation (AntigravityInstallation.validate) → The downloaded Antigravity runtime could not start in this environment

    The same argv is also written into BROWSER, so the helper used for Google sign-in would fail the same way even if preflight were skipped. agy_acp_server is never launched.

    The SEA branch already exists (HostProcessIsExecutable / node:sea). Other helpers use hidden unlisted commands (__claude-history, __service-launcher, __service-preflight, __ssh-helper). Existing Antigravity tests pass because they run under Node.

    Not a duplicate of

    Suggested fix

    When HostProcessIsExecutable is true, invoke a hidden t3 subcommand that writes the existing __T3_ANTIGRAVITY_AUTH_URL__ marker to stderr. Keep node -e for the npm/Node host. Apply that to both the preflight spawn and the BROWSER command. Add a test that uses a non-Node HostProcessExecutablePath / HostProcessIsExecutable=true so this cannot regress silently.

    Workaround

    npx --yes t3@0.0.41-nightly.20260913.1675 service update --allow-downgrade

    Accepting as a high-severity provider bug. Any SEA-based service (not only Linux) should hit this; this report used Linux x64 + Android/desktop clients.

  3. added
    bugSomething is broken or behaving incorrectly.
    acceptedfeature request accepted
    via-triageFiled through npx t3 triage
    on Sep 14, 2026
  4. MohtashamMurshid commented on Sep 15, 2026

    @MohtashamMurshid
    Contributor

    Confirmed on 0.0.41-nightly.20260915.1766 with a Linux x64 user-level systemd service.

    After repairing the service, both the launcher and server are on .1766, t3 service status reports healthy, and the HTTP endpoint returns 200. The failure still reproduces independently:

    <t3-runtime>/t3 -e '<browser helper>' -- https://example.invalid/t3-antigravity-browser-preflight
    ERROR
      Unrecognized flag: -e in command t3
    exit=1
    

    This also affects the gemini-api-key auth method. The instance had authMethod: gemini-api-key with a non-empty key, but provider startup still failed in prepareAntigravityProfile before the credential could be used. Earlier, with the same machine and managed ACP runtime, invoking agy_acp_server directly succeeded through initialize and session/new and returned the model catalog. That isolates the failure to T3's host-executable browser-helper preflight rather than OAuth, the API key, or the Antigravity runtime.

    No credentials or token values were included in this confirmation.

    There is also a separate reinstall symptom on this machine. After provider.install.remove succeeded at 2026-09-15T17:08:49Z, the subsequent reinstall attempt produced no provider.install.start RPC, download activity, staging directory, or active.json runtime record. The filesystem contained only the empty parent tools/antigravity-acp directory. The provider cache remained installed: false, canInstall: true, with Antigravity is not installed.

    So in this client session, reinstall was not reaching the known validation failure. It was not being initiated on the server at all. That may be a separate provider-setup UI/RPC issue from the self-contained -e regression.

  5. juliusmarminge commented on Sep 16, 2026

    @juliusmarminge
    Member

    Fixed by #12033 — standalone builds now resolve Node from PATH for Antigravity's browser helper (and device helper scripts) instead of invoking process.execPath with -e.

  6. Pipyakas commented on Sep 23, 2026

    @Pipyakas

    Independent confirmation on stable v0.0.42 / Linux x64 (CachyOS): same t3 -e preflight failure, install rolls back with The downloaded Antigravity runtime could not start in this environment. Full report: #13216. Local workaround: default the helper path to /usr/bin/node in prepareAntigravityProfile (same bytes as HostProcessExecutablePath expression) until a release ships #12033.

  7. dineshkorukonda commented on Oct 1, 2026

    @dineshkorukonda

    Hi, I'm running into what looks like a related Antigravity installation/runtime issue on @Pipyakas

    Environment

    • T3 Code: 0.0.44
    • OS: Ubuntu 24.04 LTS, x86_64
    • Node.js: v20.20.2
    • Antigravity CLI: 1.2.14
    • T3 is running as a user systemd service.

    What works

    The standalone Antigravity CLI works correctly:

    $ ~/.local/bin/agy --version
    1.2.14
    
    $ file ~/.local/bin/agy
    ELF 64-bit LSB pie executable, x86-64
    

    T3 itself is also running correctly:

    $ systemctl --user status t3code.service
    Active: active (running)
    
    $ systemctl --user show t3code.service -p ExecStart
    ExecStart=.../t3/runtime/versions/0.0.44/t3 __service-launcher
    

    The problem

    The issue is specifically the Antigravity provider. T3 shows:

    Antigravity is not installed.
    Install it in this environment or set a custom executable path.
    

    I also tried setting the custom binary path to /home/dinesh/.local/bin/agy, but T3 still does not recognize Antigravity as installed.

    The managed Antigravity runtime does not appear to be getting installed either:

    $ cat ~/.t3/caches/antigravity.json
    {
      "installed": false,
      "version": null,
      "status": "error",
      "message": "Antigravity is not installed. Install it in this environment or set a custom executable path."
    }
    
    $ find ~/.t3/tools -maxdepth 6 -type f 2>/dev/null | \
        grep -Ei 'antigravity|agy|localharness'
    

    This returns no results.

    Related issues

    I came across #11767 ("Self-contained nightly service breaks Antigravity preflight by invoking t3 with -e") and wanted to check whether the fix/workaround documented there is still relevant for 0.0.44.

    I also saw that the Node/helper-script issue was subsequently addressed by #12033, so I'm not sure whether this is still the same underlying problem or a different managed-runtime installation issue.

    Constraints

    I don't want to downgrade T3 or change the system Node.js version, since this server has other applications depending on Node 20.

    Question

    Is there a current workaround or configuration change for 0.0.44 on Ubuntu/Linux that would allow the managed Antigravity runtime to install/start correctly?

    Any pointers to the relevant fix/commit or recommended setup would be appreciated.

    Image Image
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    acceptedfeature request acceptedbugSomething is broken or behaving incorrectly.via-triageFiled through npx t3 triage

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions