Idempotency

2026


HTTP 500 that still commits: never retry an ambiguous write

An ERP API can answer a PUT with a 500 after it has saved the invoice. A client that retries gets a 200 and reports success with two invoices on the books. Idempotency keys and verify-by-GET did not help, because they ran outside the retry loop.
·5 mins