DevToolPal
FR
4xx Erreurs du client

412 Precondition Failed

Échec de la précondition

Signification

Une précondition des en-têtes, comme If-Match ou If-Unmodified-Since, s'est révélée fausse, donc le serveur n'a pas appliqué la requête.

Causes courantes

  • Quelqu'un d'autre a mis à jour la ressource (l'ETag a changé)
  • ETag en cache périmé utilisé dans If-Match
  • Envoi conditionnel vers un stockage qui contient déjà un objet plus récent

Comment corriger

Côté client ou visiteur

Refaites un GET de la ressource pour obtenir l'ETag actuel, réappliquez vos modifications et renvoyez.

Côté propriétaire du site ou de l’API

Renvoyez l'ETag actuel et rendez la vérification conditionnelle atomique avec l'écriture.

Exemple de réponse

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

Spécification

RFC 9110 §15.5.13

FAQ

› Qu'est-ce que le contrôle de concurrence optimiste ?

Les clients envoient If-Match avec l'ETag lu ; le serveur rejette l'écriture avec 412 si la ressource a changé entre-temps.

› 412 ou 428 ?

412 : votre précondition a échoué. 428 : vous devez envoyer une précondition.