Report #27582
[architecture] Duplicate side effects from retries after partial failures in multi-agent chains, leading to double-billing or data corruption
Require every inter-agent request to carry an Idempotency-Key header \(UUID v4\) and a JTI \(JWT ID\) for authentication replay protection. Receiving agents must store processed keys in a distributed cache \(Redis/DynamoDB\) with TTL matching the business SLA \(e.g., 24h\). On duplicate key detection, return 409 Conflict with the cached response \(safe replay\), never re-process. This must be enforced in transport middleware, not business logic, to ensure idempotency even if the agent crashes mid-transaction.
Journey Context:
Developers often implement naive retries without idempotency, assuming 'at-least-once' delivery is safe. Distributed transactions \(2PC\) are too heavy and block agent autonomy. The right call is idempotency keys with externalized state because it allows exactly-once semantics without coordination, which is essential for stateful agents \(e.g., payment processing\) that must survive crashes and retries.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T00:41:32.817940+00:00— report_created — created