mirror of
https://github.com/NikkeTryHard/zerogravity.git
synced 2026-04-25 15:15:59 +03:00
[GH-ISSUE #38] [BUG] Streaming response silently hangs on large tool-call conversations, causing client-side timeout and truncated output #34
Labels
No labels
bug
enhancement
enhancement
notice
pull-request
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/zerogravity#34
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @terryops on GitHub (Feb 20, 2026).
Original GitHub issue: https://github.com/NikkeTryHard/zerogravity/issues/38
Description
When using ZeroGravity (Docker, v1.107.0) as a proxy for
opus-4.6with a large conversation history containing many tool calls, the streaming response can silently hang mid-transfer. The upstream Google API returns200 OKand begins streaming SSE events, but stops sending data without completing the response or closing the connection. ZeroGravity does not detect or log this stall, so the client eventually times out after ~10 minutes.Symptoms
MITM: streaming responsewithstatus=200but never reachesresponse completeFailoverError: LLM request timed out.Reproduction
Environment
v1.107.0(Dockerghcr.io/nikketryhard/zerogravity:latest)opus-4.6(Claude Opus 4.6 via Antigravity LS)stream=trueRequest characteristics
thinkingBudget=2048,maxOutputTokens=32000Timeline (from logs)
The streaming started at
10:02:40but never completed. Noresponse completewas logged. The cascaded1987daejust disappeared.Expected Behavior
Suggested Fix
WARNwhen a streaming response is interrupted or stallsfinish_reason: "error"or similar to the client so it can retryNotes
This issue particularly affects agentic clients that send large conversation histories with many tool calls. The MITM layer successfully processes the request (rewriting tools, injecting parameters), but the upstream response just silently stops mid-stream. This may be related to the upstream Google API dropping connections for very large requests.
@NikkeTryHard commented on GitHub (Feb 20, 2026):
give me your
zg reportfor that specific trace@NikkeTryHard commented on GitHub (Feb 20, 2026):
@NikkeTryHard commented on GitHub (Feb 21, 2026):
Fixed in d3cff42. When the upstream stream stalls (120s idle timeout), the MITM proxy now sends a
504 STREAM_IDLE_TIMEOUTerror through the event channel instead of silently dropping it. API handlers will surface this as a proper error response to the client, instead of emittingfinish_reason=stopwith truncated content.Available in v1.2.1.