412 Precondition Failed
A conditional header did not match.
What it means
Typically If-Match with an outdated ETag: someone else changed the resource first. This is optimistic concurrency working.
What your client should do
GET the latest version and its ETag, reapply your change, and send again.
Should you retry?
Only after you change the request.
Try it
The free practice API returns this status on demand, with the headers a well-behaved API would send. Call GET /api/play/status/412 from Endpoint Client and open the Explain tab.
Related codes
409 Conflict
The request conflicts with the current state of the resource.
428 Precondition Required
The server requires a conditional request.
304 Not Modified
Your cached copy is still valid.
Defined in RFC 9110. All status codes and headers