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
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.