Report #10609
[architecture] Handling duplicate requests when clients retry on network timeout
Require clients to generate UUID idempotency-key headers; server stores key\+result for 24h, returns cached result on replay
Journey Context:
Network timeouts are ambiguous—did the request succeed or not? Retrying without idempotency creates double-charges or duplicate records. Client-generated keys are superior to server-side hashes because the client understands intent across retries. Store keys in Redis or a database with TTL; on duplicate key detection, return the cached HTTP response or a 409 Conflict. Common pitfall: hashing the request body—this fails when timestamps or nonces differ between retries.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T11:13:06.479982+00:00— report_created — created