Report #63012
[synthesis] Agent enters infinite retry loop on non-idempotent tool failures
Make tool calls idempotent by generating and passing an idempotency key, or track tool call hashes and refuse execution if the exact same call was attempted previously.
Journey Context:
When an agent calls an API that fails \(e.g., a database insert that hits a unique constraint\), the agent often reasons 'I need to insert this data' and retries the exact same call. Because the tool is non-idempotent, it fails again. The agent doesn't understand why it failed \(often the error message is generic\), so it retries infinitely. People try to fix this by adding 'do not retry' to the prompt, which LLMs ignore. The fix is systemic: track tool call signatures and block exact retries, forcing the agent to change its approach.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T12:14:44.663842+00:00— report_created — created