DevToolPal
NL
4xx Clientfouten

412 Precondition Failed

Voorwaarde mislukt

Wat het betekent

Een voorwaarde in de headers, zoals If-Match of If-Unmodified-Since, bleek onwaar, dus de server heeft het verzoek niet uitgevoerd.

Veelvoorkomende oorzaken

  • Iemand anders heeft de resource bijgewerkt (ETag gewijzigd)
  • Verouderde gecachte ETag gebruikt in If-Match
  • Voorwaardelijke upload naar opslag die al een nieuwer object heeft

Zo los je het op

Als client of bezoeker

Haal de resource opnieuw op met GET voor de huidige ETag, pas je wijzigingen opnieuw toe en stuur opnieuw.

Als beheerder van de site of API

Geef de huidige ETag terug en maak voorwaardelijke controles atomair met het schrijven.

Voorbeeldantwoord

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

Specificatie

RFC 9110 §15.5.13

Veelgestelde vragen

› Wat is optimistische concurrency control?

Clients sturen If-Match met de gelezen ETag; de server weigert het schrijven met 412 als de resource intussen is veranderd.

› 412 of 428?

412: je voorwaarde is mislukt. 428: je moet een voorwaarde meesturen.