Code HTTP 409 Conflict : signification et résolution
BéninLe code HTTP 409 Conflict indique que la requête du client est en conflit avec l'état actuel de la ressource cible sur le serveur. La requête est techniquement valide, mais elle contredit une contrainte existante (doublon, version obsolète, conflit de modification concurrente).
Que signifie le code 409 ?
Le code de statut HTTP 409 (Conflict), défini par la norme RFC 9110 (HTTP Semantics), appartient à la famille des codes 4xx : erreurs imputables au client. Il signale que la requête envoyée ne peut pas être traitée car elle est en conflit avec l'état actuel de la ressource cible. Contrairement au 400 (Bad Request), la requête est syntaxiquement correcte ; c'est sa sémantique qui crée un problème. Ce code est fréquent dans les API REST, les systèmes de versionnement de fichiers et les environnements WebDAV.
Causes probables
- Tentative de création d'une ressource déjà existante (compte avec un identifiant déjà pris, enregistrement doublon en base de données).
- Envoi d'une version d'un fichier plus ancienne que la version actuellement stockée sur le serveur (conflit de versionnement).
- Opération WebDAV sur une collection (dossier) dont le dossier parent n'existe pas encore.
- Modification concurrente d'une même ressource par deux clients simultanément (race condition).
- Violation d'une contrainte d'unicité côté serveur ou en base de données (clé unique, index unique).
Comment résoudre le code 409
- Lire le corps de la réponse 409. La réponse 409 doit contenir des informations sur la nature du conflit (en JSON, XML ou texte). Lisez attentivement ce corps de réponse pour identifier précisément quelle contrainte est violée.
- Vérifier si la ressource existe déjà. Si vous tentez de créer une ressource (compte, fichier, enregistrement), vérifiez d'abord son inexistence avec une requête GET. Si elle existe déjà, utilisez PUT ou PATCH pour la mettre à jour plutôt que POST pour la créer.
- Mettre à jour votre version locale. Dans un contexte de versionnement (Git, WebDAV, API de gestion documentaire), récupérez la version la plus récente de la ressource depuis le serveur, fusionnez vos modifications, puis renvoyez la version résultante.
- Implémenter une gestion des conflits côté développeur. Pour les développeurs d'API : renvoyez un 409 avec un corps explicatif détaillant la contrainte violée. Côté client, implémentez une logique de retry précédée d'une lecture de l'état actuel (optimistic locking ou pattern check-then-act).
Quand faire appel à un professionnel
Pour les développeurs rencontrant un 409 persistant sur une API tierce, consultez la documentation de l'API concernée : le code 409 y est souvent documenté avec les champs de réponse permettant d'identifier le conflit.
Questions fréquentes
Quelle est la différence entre un code HTTP 409 et un code 400 ?
Un code 409 est-il une erreur côté client ou côté serveur ?
Le code 409 est-il temporaire ou permanent ?
Autres codes Serveur / HTTP
Source : RFC 9110 - HTTP Semantics (IETF) · relevé le 10/08/2026.