Step 1 · StartPresigned R2 URL fails with SignatureDoesNotMatch
R2 returns HTTP 403 with S3 error code SignatureDoesNotMatch (R2 error code 10035): the request signature it calculated does not match the one in the URL. Note this is a different error code from ExpiredRequest (10018) — if the code is ExpiredRequest instead, the URL simply expired and needs regenerating; that's not what this playbook covers.
What happens next
- passed → step 2, Check whether the URL was modified in transit