Tool wrapper retries a timing-out tool call without any limit
A tool wrapper that retries every exception keeps calling a tool that always times out; it never terminates on its own. Bounding attempts with backoff and returning the error to the agent stops the loop.
- Framework / agent
- not stated · tool-calling agent (controlled sample)
- Remediation attempts
- VERIFIED SUCCESS
- Recurrence
- not documented
- Source languages
- en
- Updated
- 2026-09-30
Sources
- CONTROLLED TEST Controlled test: tool wrapper retries a timing-out call without a limit — agenterrors.online controlled tests, retrieved 2026-09-29
Public sample: the full evidence record is free.
Symptoms
- The same timing-out tool call is repeated without end VERIFIED FACT
Context and trigger
- Agent type
- tool-calling agent (controlled sample)
- Component
- tool-call retry wrapper
- Framework
- not stated
- Model
- not stated
- Scenario set up in the controlled test VERIFIED FACT
Open questions
- Controlled reproduction: real-world variants may involve additional causes.
Root cause VERIFIED
The wrapper retried every exception with no maximum attempt count.
cause stated by the project and addressed by an applied fix
the wrapper called the tool 1000 times and only stopped at the testRemediation attempts (1)
Bound retries to 3 attempts with exponential backoff and return the error to the agent.
Status basis: fix merged; controlled re-run; controlled re-run observed that the failure no longer occurs. Verification: controlled re-run observed that the failure no longer occurs.
Change: https://agenterrors.online/docs#controlled-unbounded-retry-timeout · merged · tests changed
a bounded retry with at most 3 attempts and exponential backoffcalls dropped from 1000 to 3; the loop no longer occursOutcome outcome: RESOLVED VERIFIED
controlled re-run observed that the failure no longer occurs (2026-09-29)
Recurrence
Not documented in the sources (absence of reports is not evidence of absence).
Confidence HIGH
Root cause stated by the project, a fix was applied, and it is backed by a regression test or independent confirmation.
| Factor | Present | Meaning |
|---|---|---|
| first_party_evidence | yes | a quote from the affected project/vendor (or a controlled test) |
| fix_applied | yes | a fix was merged/released |
| regression_test | yes | tests changed with the fix |
| independent_confirmation | yes | reporter/maintainer/vendor confirmed the failure is gone |
| root_cause_verified | yes | cause stated by the project and addressed by the fix |
| reproduction_documented | yes | steps or conditions to reproduce were quoted |
| multiple_independent_sources | no | 1 independent source group(s) |
| failed_attempts_documented | no | unsuccessful remediation recorded |
All evidence (5 verified quotes)
A tool wrapper retries any exception thrown by a tool that always times out (TimeoutError: upstream did not answer within 5000 ms).Observed before the fix: the wrapper called the tool 1000 times and only stopped at the test's safety valve; without it the loop would not terminate.a bounded retry with at most 3 attempts and exponential backoffcalls dropped from 1000 to 3; the loop no longer occursthe wrapper called the tool 1000 times and only stopped at the testCategories: RETRY LOOP · extraction curated, gate-2026-09-29-v1
Similarity to your system is not implied. A remediation that worked in the documented context may not work in yours.