Retrying Before the Answer Could Arrive
- Admitted
- 2026-04-10
- Source dataset
- Other / sample
- Failure mode
- Infinite loop
- Agent system
- Single agent
- Tool access
- Read-only
- Industry
- Software development
Presenting Behaviour
Running against a large local language model, an agent issued a request and set a stream timeout for the model's initial response. On sufficiently large models, the time needed just to process the incoming prompt before generating a first token legitimately exceeded that timeout. Rather than recognizing that the request was still being worked on, the agent aborted the connection and immediately resubmitted the same heavy request, which again took longer than the timeout to begin responding, was again aborted, and was again resubmitted, a cycle that repeated indefinitely with no backoff and no completed response.
Case Replay
A reconstruction, not a simulation. This sequence is reconstructed from the public incident record and summarised in our own words. It is a static record of what was reported, and nothing here can be run or replayed live.
4 steps
- Request sent. The agent queries a large local model with a stream timeout.
- Timeout hit. Prompt processing legitimately takes longer than the timeout.
- Same request resent. It aborts and resubmits the identical heavy request. This is where the agent derailed.
- Never completes. The cycle repeats with no backoff.
Differential Diagnosis
An unresponsive or broken model backend, considered and ruled out. The backend was actively working through the prompt each time; it simply needed more time than the timeout allowed, and was being interrupted mid-computation rather than failing to respond at all.
Apraxia, considered, since the timeout value itself was arguably set wrong for the workload. Ruled out as the core issue because a single mismatched timeout wouldn't cause a permanent deadlock on its own, it was the automatic, unmodified retry after every abort, with no increase in patience and no fallback, that turned one slow response into an unbreakable cycle.
Perseveration, most consistent with the evidence. Each time the same request was aborted for taking too long, the agent immediately repeated the identical request with the identical timeout, guaranteeing the identical outcome, rather than backing off or adjusting its expectations for a large workload.
Working Diagnosis
Perseveration: the agent responded to a timeout by immediately resubmitting the same heavy request with the same timeout, repeating this cycle indefinitely rather than adapting to the fact that the request needed more processing time than it was allowing.
Discussion
A retry that doesn't change anything about the request it's retrying isn't really a second attempt, it's the same attempt again, and a workload that's simply slow rather than broken will keep failing that same way forever. Any retry logic needs either a growing timeout, a cap on total retries, or a way to tell "this is taking longer than usual" apart from "this has failed", otherwise the safety mechanism meant to handle slowness becomes the thing that turns slowness into a permanent hang.
Mitigation Strategy
Use a growing timeout, a cap on retries, or a way to tell slow from failed.
Governance Guardrails
Backoff on retries; total retry caps; timeout tuning for large local models.
Typical Presentation in Human Patients
General clinical background, included for context. Not medical advice, and not a diagnosis of any individual.
Perseveration is the inappropriate repetition of a word, gesture, or action well past the point where it's still relevant or useful. It's a well-documented sign of frontal lobe dysfunction, and also appears in some forms of dementia and obsessive-compulsive disorder.
Source Note
GitHub, NousResearch/hermes-agent issue #7069
https://github.com/NousResearch/hermes-agent/issues/7069