Bedeutung
Eine Vorbedingung in den Headern, etwa If-Match oder If-Unmodified-Since, war falsch, daher hat der Server die Anfrage nicht ausgeführt.
Typische Ursachen
- Jemand anderes hat die Ressource aktualisiert (ETag geändert)
- Veraltetes zwischengespeichertes ETag in If-Match
- Bedingter Upload in einen Speicher, der bereits ein neueres Objekt enthält
So beheben Sie es
Als Client oder Besucher
Ressource erneut per GET abrufen, um das aktuelle ETag zu erhalten, Änderungen erneut anwenden und neu senden.
Als Betreiber der Website oder API
Das aktuelle ETag zurückgeben und bedingte Prüfungen atomar mit dem Schreibvorgang ausführen.
Beispielantwort
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\"."
} Spezifikation
FAQ
› Was ist optimistische Nebenläufigkeitskontrolle?
Clients senden If-Match mit dem gelesenen ETag; der Server lehnt das Schreiben mit 412 ab, wenn sich die Ressource inzwischen geändert hat.
› 412 oder 428?
412: Ihre Vorbedingung ist fehlgeschlagen. 428: Sie müssen überhaupt eine Vorbedingung senden.