Skip to content

Antigravity quota exhaustion (HTTP 429) finishes the turn as completed instead of showing the usage-limit banner #28658

Open

Description

@bramtechs

What happened

An Antigravity thread (model claude-opus-4-6-thinking) ran out of its individual quota partway through a turn. T3 Code did not show the "Usage limit reached" banner that Claude and Codex threads show. Each tool call that was running got marked failed, and the 429 text ended up as that call's output inside the collapsed agent steps. The run was recorded as completed. The only sign of the error was a raw RESOURCE_EXHAUSTED dump under a "Read …" step.

Image

Diagnosis

On the ACP side, Antigravity does not return the quota error as a session/prompt error. The provider event log shows session/prompt → succeeded with a normal result. Antigravity puts Agent execution terminated due to error. ("agent executor error: Error 429, Message: Individual quota reached … Status: RESOURCE_EXHAUSTED … reason:QUOTA_EXHAUSTED … quotaResetTimeStamp:…") into the output of every tool call still in flight and marks those calls failed.

In T3, failure.class: "usage_limit" is the signal for the banner and auto-resume (Orchestrator.ts, ProjectionStore.ts lastErrorClass, provider-core/server/failure.ts). For ACP providers it can only be set through AcpAdapterV2Flavor.promptFailure (packages/provider-acp/src/server/adapter.ts, around the idleErrorFailure and prompt catchCause paths). Grok and the ACP registry flavors implement it. AntigravityAdapterV2.ts does not. Even if it did, promptFailure would not run here because the prompt succeeded.

The Antigravity flavor needs to recognise this pattern: a tool call that fails with Error 429 / RESOURCE_EXHAUSTED / QUOTA_EXHAUSTED in its output, or the same text in an agent message. It should then end the turn as failed with class: "usage_limit" and set resetAt from quotaResetTimeStamp (or RetryInfo.retryDelay). The quota text could also be shown once, rather than copied into every running tool call.

Main (8760d063) has no change here: AntigravityAdapterV2.ts still has no promptFailure and no quota detection.

Steps to reproduce

  1. Use an Antigravity account that is close to its individual quota for a model (seen with claude-opus-4-6-thinking).
  2. Start an Antigravity thread and give it a task that makes several tool calls (reads, commands).
  3. Let the quota run out mid-turn.
  4. Expected: the turn fails with the "Usage limit reached" banner and reset time, like Claude and Codex.
    Actual: the turn ends as completed. Every in-flight tool step shows as failed, with the raw 429 / RESOURCE_EXHAUSTED text as its output. No banner appears.

Version

Server 0.1.6-nightly.20261031.3956 (tag v0.1.6-nightly.20261031.3956, d92c437b)

Environment

  • Server: Windows 11 x64, run through npx (nightly), port 3773
  • Client: T3 Code web UI
  • Provider: Antigravity (ACP), model claude-opus-4-6-thinking
  • Happened on two turns in the same thread: run 1 (2026-11-01 00:17 UTC) and run 4 (12:38 UTC). Both runs ended completed.

Evidence

Provider event log (logs/provider/events.<thread>.log), run 4:

12:35:07.109Z  session/prompt  started
12:38:34.741Z  session/prompt  succeeded  result: {fieldCount: 1}

Projection rows for that run:

run ordinal 4  status=completed  completedAt=2026-11-01T12:38:35.409Z
item  type=dynamic_tool toolName=Read  status=failed
      output="Agent execution terminated due to error. (\"agent executor error: Error 429, Message: Individual quota reached. Please upgrade your subscription to increase your limits. Resets in 167h54m27s., Status: RESOURCE_EXHAUSTED, Details: [... ErrorInfo domain:cloudcode-pa.googleapis.com metadata:map[model:claude-opus-4-6-thinking quotaResetDelay:167h54m27s quotaResetTimeStamp:2026-11-08T12:33:01Z ...] reason:QUOTA_EXHAUSTED] ... RetryInfo retryDelay:604467s]\")"

Run 1 had the same output on a command_execution item and a Read item, both failed, while the run was completed.

Screenshot: attached below.

Related issues

Fix applied or workaround

None. Users have to spot the 429 inside the collapsed tool steps themselves.

Filed by

Claude Code (Claude Opus 5.5) via t3 triage


Written by Claude Code (Claude Opus 5.5) at the reporter's request.

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions