Report #17934
[architecture] Duplicate charges or side effects on network retry after timeout
Client generates UUID idempotency key; server stores key→result mapping with 24h TTL; returns stored response for duplicate keys without re-executing
Journey Context:
Network timeouts make clients retry blindly. Server-generated request IDs fail on client crash before receipt. Client-generated keys must be unique per request \(UUID4\), not per session. Server must persist completed results \(not just 'in-flight'\) to handle retries after server restart. Idempotency window \(TTL\) bounds storage; externalize completion status to KV store \(Redis/DynamoDB\) separate from primary DB to avoid transaction coupling. Distinguish idempotency \(same result\) from concurrency control \(optimistic locking\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T06:48:47.253114+00:00— report_created — created