files/en-us/web/http/reference/status/412/index.md
The HTTP 412 Precondition Failed client error response status code indicates that access to the target resource was denied.
This happens with conditional requests on methods other than {{HTTPMethod("GET")}} or {{HTTPMethod("HEAD")}} when the condition defined by the {{HTTPHeader("If-Unmodified-Since")}} or {{HTTPHeader("If-Match")}} headers is not fulfilled.
In that case, the request (usually an upload or a modification of a resource) cannot be made and this error response is sent back.
412 Precondition Failed
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
ETag: W/"0815"
With the help of the ETag and the {{HTTPHeader("If-Match")}} headers, you can prevent conflicts or mid-air collisions.
For example, when editing some wiki pages, content is hashed and put into an ETag in successful responses:
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
When saving changes to a wiki page (posting data), the {{HTTPMethod("POST")}} request will contain the {{HTTPHeader("If-Match")}} header containing the ETag values that the client stored from the last edit to check freshness of the resource on the server:
If-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"
If the hashes don't match, the document has been edited in-between and a 412 Precondition Failed error is thrown.
{{Specifications}}