Back to the ward
Case 0451MinorPerseveration

Retrying Before the Answer Could Arrive

Admitted
2026-04-10
Source dataset
Other / sample
Source
GitHub, NousResearch/hermes-agent issue #7069
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

  1. Request sent. The agent queries a large local model with a stream timeout.
  2. Timeout hit. Prompt processing legitimately takes longer than the timeout.
  3. Same request resent. It aborts and resubmits the identical heavy request. This is where the agent derailed.
  4. 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