DevToolPal
PT
4xx Erros do cliente

412 Precondition Failed

Pré-condição falhou

O que significa

Uma pré-condição nos cabeçalhos, como If-Match ou If-Unmodified-Since, resultou falsa, então o servidor não aplicou a requisição.

Causas comuns

  • Outra pessoa atualizou o recurso (o ETag mudou)
  • ETag em cache desatualizado usado em If-Match
  • Upload condicional para um armazenamento que já tem um objeto mais novo

Como resolver

Se você é o cliente ou visitante

Faça GET do recurso de novo para obter o ETag atual, reaplique suas alterações e reenvie.

Se você mantém o site ou a API

Retorne o ETag atual e torne as verificações condicionais atômicas com a escrita.

Resposta de exemplo

HTTP/1.1
HTTP/1.1 412 Precondition Failed
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
ETag: "v8"
Content-Type: application/problem+json

{
  "type": "about:blank",
  "title": "Precondition Failed",
  "status": 412,
  "detail": "If-Match \"v7\" does not match the current version \"v8\"."
}

Especificação

RFC 9110 §15.5.13

Perguntas frequentes

› O que é controle de concorrência otimista?

Os clientes enviam If-Match com o ETag que leram; o servidor rejeita a escrita com 412 se o recurso mudou nesse meio-tempo.

› 412 ou 428?

412: sua pré-condição falhou. 428: você precisa enviar uma pré-condição.