Report #101771
[architecture] A retry after a timeout between agents caused duplicate charges, emails, or records
Generate a stable idempotency key at the originating intent, propagate it through every agent handoff and tool call, and make every state-mutating consumer check the key before executing; return the cached result for duplicates.
Journey Context:
Agents retry automatically on transient failures, and a timeout between two agents creates an ambiguous outcome: the caller does not know whether the callee processed the request. Idempotency keys convert at-least-once delivery into exactly-once functional behavior. Stripe's canonical pattern is to attach a UUID key on POST requests and have the server cache the response for 24 hours. The key must be stable across retries and namespaced, not regenerated per attempt. The tradeoff is a deduplication store versus double-spend or duplicate-notification incidents.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-07T05:25:12.936269+00:00— report_created — created