412 Precondition Failed

A condition the client set in the request headers evaluated to false on the server.

Status code412
Status textPrecondition Failed
Category4xx Client Error
Response has bodyUsually
SpecificationRFC 9110

What does 412 Precondition Failed mean?

A condition the client set in the request headers evaluated to false on the server. It belongs to the 4xx Client Error class, which means the request contains bad syntax or cannot be fulfilled. Something about the request needs to change.

When do APIs return 412?

Optimistic concurrency control — you sent If-Match with an ETag and the resource has changed since you fetched it.

How to fix a 412 Precondition Failed

Someone else modified the resource after you read it, so the server refused your write rather than silently overwriting theirs. Re-fetch the resource, take its new ETag, reapply your change and retry. If you are getting this unexpectedly, check whether you are sending a stale or hard-coded ETag.

Reproduce a 412 response

The fastest way to understand a status code is to trigger one and read the full response. Open the API tester and send a request to https://httpbin.org/status/412 — you will see the 412 status along with every response header the server sent. Comparing those headers against a working request is often what reveals the cause.

When you are debugging a real endpoint, check the response headers as carefully as the body, and confirm you are using the right HTTP method for the operation.

Related 4xx status codes