Report #64323
[architecture] Retrying failed agent calls causes duplicate side effects or partial execution in multi-agent chains
Require Idempotency-Key headers with deterministic execution logs; treat agent boundaries as idempotent HTTP interfaces per Stripe's model
Journey Context:
Developers generate new UUIDs per retry instead of reusing the same idempotency key, causing duplicates. Or they reuse keys but don't persist the intent, so on crash-recovery they re-execute. The fix is to treat the key as a write-once log entry: check key existence before execution, store result atomically, return stored result on conflict. Tradeoff: requires persistent store \(Redis/DB\) at boundary, adds latency for lookup. Alternative \(at-least-once delivery with dedup\) rejected because it doesn't handle non-idempotent side effects like charging money.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T14:27:06.419230+00:00— report_created — created