DevToolPal
UK
4xx Помилки клієнта

412 Precondition Failed

Передумова не виконана

Що це означає

Передумова в заголовках запиту, наприклад If-Match або If-Unmodified-Since, виявилася хибною, тож сервер не застосував запит.

Типові причини

  • Хтось інший оновив ресурс (ETag змінився)
  • В If-Match використано застарілий кешований ETag
  • Умовне завантаження в сховище, де вже є новіший об'єкт

Як виправити

Якщо ви клієнт або відвідувач

Знову виконайте GET ресурсу, щоб отримати поточний ETag, повторно внесіть зміни й надішліть ще раз.

Якщо ви власник сайту чи API

Повертайте поточний ETag і робіть перевірку умов атомарною із записом.

Приклад відповіді

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

Специфікація

RFC 9110 §15.5.13

Часті запитання

› Що таке оптимістичне керування паралельністю?

Клієнти надсилають If-Match з прочитаним ETag; сервер відхиляє запис кодом 412, якщо ресурс тим часом змінився.

› 412 чи 428?

412: ваша передумова не виконалася. 428: ви взагалі маєте надіслати передумову.