Qué significa
El servidor exige que la petición sea condicional (If-Match, etc.) para evitar actualizaciones perdidas.
Causas habituales
- PUT o PATCH sin If-Match en una API que impone bloqueo optimista
Cómo solucionarlo
Si eres el cliente o visitante
Haz GET del recurso, toma su ETag y envíalo en If-Match con tu actualización.
Si administras el sitio o la API
Explica en el cuerpo qué cabecera se requiere.
Respuesta de ejemplo
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."
} Especificación
Preguntas frecuentes
› ¿Por qué una API exigiría If-Match?
Para evitar que dos clientes sobrescriban los cambios del otro sin darse cuenta.
› ¿428 o 412?
428: no se envió ninguna precondición. 412: se envió pero falló.