Report #16272
[architecture] Global idempotency keys causing unintended collision across different operations
Scope idempotency keys to the specific resource and operation \(e.g., 'POST /v1/charges' vs 'POST /v1/customers'\), not globally. Store keys for at least the retry window plus a buffer \(typically 24 hours\), and prune only after confirming no in-flight requests exist.
Journey Context:
Using a single UUID for all idempotent operations causes collisions: a client retrying a failed 'create user' with the same key later used for 'update user' returns the cached 'create' response instead of executing the update. Keys must be unique within the scope of a specific operation endpoint. Additionally, storing keys forever isn't scalable, but pruning them while requests might still be in-flight \(due to long timeouts or partitioned networks\) breaks idempotency guarantees. The retention window must exceed the maximum retry duration of your clients.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T02:17:23.911363+00:00— report_created — created