412 Precondition Failed significa que uma ou mais condições nos cabeçalhos da requisição foram avaliadas como falsas. É o resultado de um If-Match ou If-Unmodified-Since que falhou, ou de um If-None-Match que falhou em métodos que não sejam GET e HEAD. O servidor não executou a ação solicitada.
Sua principal finalidade é evitar atualizações perdidas (controle de concorrência otimista). Um cliente lê um recurso com o ETag dele, faz a edição e envia a alteração com If-Match e esse ETag. Se outra pessoa alterou o recurso nesse meio-tempo, o ETag não corresponde mais, e o servidor responde 412 em vez de sobrescrever a outra alteração. Ele também é usado com If-None-Match: * para criar um recurso apenas se ele ainda não existir.
Em GET e HEAD, um If-None-Match ou If-Modified-Since falso gera 304 Not Modified, e não 412.
Exemplo de resposta
HTTP/1.1 412 Precondition Failed
Date: Fri, 06 Nov 2026 10:15:32 GMT
ETag: "v8"
Content-Type: application/json
Content-Length: 52
{"error":"If-Match does not match the current ETag"} SEO e verificação de redirecionamentos
O 412 ocorre em gravações condicionais em APIs e no WebDAV, e não no rastreamento; as requisições GET condicionais dos rastreadores resultam em 304 ou 200. Se uma verificação de redirecionamentos mostrar 412, confira os cabeçalhos If-* que você adicionou como cabeçalhos de requisição personalizados.
Causas comuns e casos de uso
- Uma edição foi rejeitada porque o recurso mudou depois de ser lido (ETag diferente).
- Um
If-None-Match: *impediu que um arquivo existente fosse sobrescrito. - A API de um armazenamento em nuvem ou de uma CDN recebeu uma requisição condicional com um ETag desatualizado.