Report #58187
[architecture] Retrying failed agent handoffs causes duplicate side effects \(double API calls, duplicate database writes\)
Attach idempotency keys to inter-agent task messages and ensure downstream tool executions check these keys before mutating state.
Journey Context:
When an orchestrator agent delegates a task to a worker agent and the worker times out, the orchestrator retries. If the worker actually executed the side effect \(e.g., charged a credit card\) but failed to return the success message, the retry causes a double charge. Unlike microservices where developers naturally think of idempotency, agent developers often treat agent steps as pure functions. The fix requires propagating an idempotency key \(e.g., a UUID\) in the message metadata down to the actual tool execution layer. The tradeoff is increased complexity at the tool layer to store/check keys, but it is strictly required for safe multi-agent retries.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T04:09:21.955031+00:00— report_created — created