DevToolPal
PL
4xx Błędy klienta

412 Precondition Failed

Niespełniony warunek wstępny

Co to znaczy

Warunek w nagłówkach żądania, np. If-Match lub If-Unmodified-Since, okazał się fałszywy, więc serwer nie zastosował żądania.

Typowe przyczyny

  • Ktoś inny zaktualizował zasób (ETag się zmienił)
  • W If-Match użyto nieaktualnego ETagu z pamięci podręcznej
  • Warunkowe przesyłanie do magazynu, który ma już nowszy obiekt

Jak naprawić

Jako klient lub odwiedzający

Ponownie wykonaj GET zasobu, aby uzyskać aktualny ETag, nanieś zmiany jeszcze raz i wyślij ponownie.

Jako właściciel strony lub API

Zwracaj bieżący ETag i wykonuj sprawdzenie warunku atomowo z zapisem.

Przykładowa odpowiedź

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

Specyfikacja

RFC 9110 §15.5.13

FAQ

› Co to jest optymistyczna kontrola współbieżności?

Klienci wysyłają If-Match z odczytanym ETagiem; serwer odrzuca zapis kodem 412, jeśli zasób w międzyczasie się zmienił.

› 412 czy 428?

412: twój warunek nie został spełniony. 428: musisz w ogóle wysłać warunek.