O que significa
O servidor exige que a requisição seja condicional (If-Match etc.) para evitar atualizações perdidas.
Causas comuns
- PUT ou PATCH sem If-Match numa API que impõe bloqueio otimista
Como resolver
Se você é o cliente ou visitante
Faça GET do recurso, pegue o ETag e envie-o em If-Match com sua atualização.
Se você mantém o site ou a API
Explique no corpo qual cabeçalho é exigido.
Resposta de exemplo
HTTP/1.1
HTTP/1.1 428 Precondition Required
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Content-Type: application/problem+json
{
"type": "about:blank",
"title": "Precondition Required",
"status": 428,
"detail": "Send If-Match with the ETag you last read."
} Especificação
Perguntas frequentes
› Por que uma API exigiria If-Match?
Para evitar que dois clientes sobrescrevam as alterações um do outro sem perceber.
› 428 ou 412?
428: nenhuma pré-condição foi enviada. 412: foi enviada, mas falhou.