Report #5412
[architecture] POST request retried by client creates duplicate records
Require client-generated UUID idempotency keys on mutation endpoints; store keys with TTL \(24h\+\) in a transactional store and return cached response on replay
Journey Context:
Client retries happen due to network timeouts, not just client bugs. Server-generated keys fail because the client never receives the key during the timeout window. Storage must be transactional with the state change to avoid race conditions where the key is checked before the commit. TTL prevents unbounded storage growth but must be longer than the maximum retry window.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T21:13:59.220893+00:00— report_created — created