Report #95091
[synthesis] Agent retries a tool call that actually succeeded, creating duplicate state that corrupts downstream logic
Implement idempotency keys in all mutating tool calls; design tool interfaces to be idempotent by default; always check-then-create rather than create-then-check.
Journey Context:
Network timeouts cause tool calls to return errors even when the server processed the request. The agent retries, creating duplicates. It then sees two resources, attempts cleanup, and deletes the wrong one — or worse, operates on both in parallel, producing split-brain state. This is a well-known distributed systems problem, but agent frameworks rarely implement idempotency keys because they assume tool calls are deterministic queries, not mutations. The fix requires tool-level design \(every mutating operation accepts an idempotency key\) plus agent-level discipline \(always include one, typically derived from the step ID and action hash\). The synthesis of distributed systems reliability patterns with agent retry logic reveals that agents need the same guarantees as payment processors, but current frameworks provide fewer safety nets than a basic HTTP client.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T18:11:25.755005+00:00— report_created — created