DevToolPal
ES
4xx Errores del cliente

412 Precondition Failed

Precondición fallida

Qué significa

Una precondición de las cabeceras, como If-Match o If-Unmodified-Since, resultó falsa, así que el servidor no aplicó la petición.

Causas habituales

  • Otra persona actualizó el recurso (cambió el ETag)
  • Se usó un ETag en caché desactualizado en If-Match
  • Subida condicional a un almacenamiento que ya tiene un objeto más reciente

Cómo solucionarlo

Si eres el cliente o visitante

Haz GET del recurso para obtener el ETag actual, vuelve a aplicar tus cambios y reenvía.

Si administras el sitio o la API

Devuelve el ETag actual y haz que la comprobación condicional sea atómica con la escritura.

Respuesta de ejemplo

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\"."
}

Especificación

RFC 9110 §15.5.13

Preguntas frecuentes

› ¿Qué es el control de concurrencia optimista?

Los clientes envían If-Match con el ETag que leyeron; el servidor rechaza la escritura con 412 si el recurso cambió entretanto.

› ¿412 o 428?

412: tu precondición falló. 428: debes enviar una precondición.