DevToolPal
ID
4xx Kesalahan klien

412 Precondition Failed

Prasyarat Gagal

Artinya

Prasyarat di header permintaan, seperti If-Match atau If-Unmodified-Since, bernilai salah, sehingga server tidak menerapkan permintaan.

Penyebab umum

  • Orang lain memperbarui resource (ETag berubah)
  • ETag cache yang usang dipakai di If-Match
  • Unggahan bersyarat ke storage yang sudah punya objek lebih baru

Cara memperbaiki

Sebagai klien atau pengunjung

Lakukan GET ulang untuk mendapatkan ETag terkini, terapkan ulang perubahan Anda, lalu kirim lagi.

Sebagai pengelola situs atau API

Kembalikan ETag terkini dan jadikan pengecekan kondisi atomik dengan proses tulis.

Contoh respons

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

Spesifikasi

RFC 9110 §15.5.13

FAQ

› Apa itu optimistic concurrency control?

Klien mengirim If-Match dengan ETag yang dibacanya; server menolak penulisan dengan 412 jika resource berubah di sela waktu itu.

› 412 atau 428?

412: prasyarat Anda gagal. 428: Anda wajib mengirim prasyarat.