Retry exhaustion silently parks tasks in needs_input and makes the UI look stuck #1934
Replies: 1 comment
|
Additional concrete reproduction from a different provider path (
The first failed attempt had already streamed about 2.7k characters of progress-like text, but the persisted assistant message still had Also, the timeout message linked to Anthropic API documentation even though the selected model shown in the UI was Requested UI behavior: explicitly label partial output from a failed turn as unverified/incomplete, show the actual selected provider chain, and end in a visible |
Uh oh!
There was an error while loading. Please reload this page.
Summary
On Windows with Prime Agent
0.8.1, transient provider transport failures such asfetch failedexhaust the retry budget and silently end the active turn. Internally, the session changes toagent_status.taskState = needs_input, but the interactive UI does not make that terminal/waiting state clear. From the user's perspective, it is impossible to tell whether the agent is working, retrying, waiting for input, failed, or hung.This report is about Prime Agent's recovery and state presentation. The original network/provider outage may be external, but a transient transport error should not leave a long-running task silently parked with ambiguous UI.
Observed behavior
A representative sequence was:
After the final retry:
stopReason: "error";input=0,output=0,totalTokens=0, with no response ID;agent_status.taskStatechanges toneeds_input;Failed — waiting for user inputor provide a directRetry/Resumeaction.In one captured case, the session emitted
needs_inputstatus heartbeats for about 46 minutes before the user asked whether it was stuck. After that new user message, work continued. The assistant then said it was not stuck, even though the recorded state shows that the prior turn had stopped and was waiting for input.Sanitized log audit
A read-only structured audit parsed 101 JSONL files (33 top-level sessions and 68 nested child sessions). Quoted text was excluded; only assistant messages with
stopReason="error"were counted.fetch failederrors across 6 session filesfetch failedburstsopenai-codex/gpt-5.6-solandopenai-codex/gpt-5.6-terrataskState: needs_inputTwo correlated failure windows affected multiple sessions at once:
2026-08-31 15:14–15:18 UTC: 2 sessions2026-09-01 05:04–05:08 UTC: 4 sessions, including related parent/child sessionsNo prompts, credentials, request payloads, tokens, account IDs, or private URLs are included in this report.
Steps to reproduce
A deterministic network fault injector was not used, but the observed path can be exercised as follows:
Retry failed after 3 attemptsmessage.stopReason="error", followed byagent_status.taskState="needs_input".Expected behavior
At minimum, after retry exhaustion the UI should show one authoritative state, for example:
While retrying, show the attempt and next action (
Retrying 2/3 in 4s). After recovery, showRecovered — continuing. AnimatedThinking.../working indicators should only be visible while work is actually active.For long-running/autonomous tasks, consider automatically resuming after a transient transport outage, or preserving a durable continuation action that the user can invoke without writing a new prompt.
Diagnostic improvements requested
fetch failed.fetch failed ×4) while preserving each attempt in detailed logs.needs_input.Environment
0.8.1All reactions