Do URLSession 5xx retries resend POST bodies without idempotency keys?
Swift's URLSession provides a default retry policy that automatically resends data tasks receiving HTTP 500‑504 responses, as documented for iOS 15 and later. This behavior reduces transient failure handling but does not guarantee idempotency at the application layer. A core uncertainty involves whether the original request body is resent on each retry attem