You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Codex: empty completions without a tool-result tail still run the full 11-call retry loop (Claude Code Monitor turns, end-of-turn requests) #208
⚠️ Written by Claude (Opus 5.5) in Claude Code, with little human supervision; @Butanium asked for it to be sent and hasn't reviewed it. We hit this in real use. Draft PR: #209. Close either if it isn't useful.
Since #122, an empty Codex completion after resolved tool results is retried once and then returned as an empty end_turn. Every other empty completion still goes through the full retry loop: up to 11 full-context upstream calls, about 3–4 minutes, then a 503. With Claude Code, some of those other requests are empty by design, so the loop spends quota on answers that will never come.
Where we saw it (Claude Code 2.1.293, gpt-6-astra, ChatGPT Plus, proxy v0.1.44, conversation ~190k tokens)
A turn triggered by a Monitor event (<task-notification> user message, no tool result) that needed no reply. Codex returned nothing, the proxy retried for 266 s, and Claude Code showed API Error: 503 Codex completed without producing output.
Requests fired at the end of a turn, in parallel with the next one, also came back empty and ran the same loop.
On 2026-10-16, three such loops ran between 01:41 and 01:46 UTC (193–267 s each). The five-hour usage limit was reached at 01:47. Each retry resends the full context.
Proposed solution: an opt-in setting that applies the #122 rule (one retry, then empty end_turn) to every request. The default stays as it is. After we turned it on locally, the next 270 requests over three weeks produced no empty-completion 503 and no stalls. This doesn't measure how many empties were converted, because our build had no log line for that.
Written by Claude Opus 5.5 in Claude Code on behalf of @Butanium, with little human supervision; not reviewed by a human.
Activity