HTTP

HTTP 409 Conflit d'état

409 Conflict signifie que la demande ne peut pas aboutir parce qu'elle entre en conflit avec l'état actuel d'une ressource.

Signification

Le code 409 est courant dans les API : création d'un compte avec une adresse déjà utilisée, enregistrement d'une fiche modifiée par quelqu'un d'autre entre-temps ou push Git sur une branche qui a avancé. La réponse doit préciser le conflit pour permettre sa résolution.

Causes fréquentes

  • Une ressource portant la même clé unique existe déjà.
  • Deux modifications concurrentes touchent le même enregistrement (verrouillage optimiste).
  • Une transition d'état est impossible, comme annuler une commande déjà expédiée.
  • La version du fichier ou de l'objet ne correspond pas à celle attendue.

Que peut faire un visiteur ?

  • Actualisez la page pour obtenir l'état le plus récent et réessayez après avoir vérifié les changements.
  • Si une inscription renvoie 409, un compte contenant les mêmes informations existe peut-être déjà.

Que peut faire le responsable ?

  • Expliquez clairement dans la réponse API ce qui entre en conflit et comment le résoudre.
  • Pour les modifications concurrentes, utilisez ETag et If-Match, qui peuvent aussi produire le code 412.
  • N'employez pas 409 pour les erreurs habituelles de validation : utilisez plutôt 400 ou 422.

Impact sur le référencement

Les codes 409 se rencontrent surtout dans les API et formulaires, pas sur les pages HTML publiques. Ils n'affectent donc généralement pas leur référencement.

Questions fréquentes

409 indique-t-il une erreur du serveur ?

Non. Le serveur fonctionne mais la demande ne peut pas être appliquée à cause de l'état actuel de la ressource.

Comment résoudre une erreur HTTP 409 dans une API ?

Récupérez la version actuelle de la ressource, réconciliez vos modifications et soumettez une nouvelle demande cohérente.

Sources