422 Unprocessable Content : syntaxe valide, données invalides
422 Unprocessable Content : la requête est bien formée mais ses données ne peuvent pas être traitées, en général parce qu’elles échouent à la validation.
422 Unprocessable Content signifie que le serveur a compris la requête et que son format est correct, mais que les données qu’elle contient n’ont pas de sens : un champ e-mail sans adresse e-mail, une date de fin antérieure à la date de début, une quantité de −3. C’est la réponse standard aux erreurs de validation dans les API modernes.
Définition
La RFC 9110, section 15.5.21 indique que le serveur comprend le type de contenu et que la syntaxe est correcte, mais qu’il « n’a pas pu traiter les instructions contenues ». Ce code est né dans WebDAV (RFC 4918) sous le nom « Unprocessable Entity », que de nombreux frameworks emploient encore ; la RFC 9110 l’a renommé et l’a intégré au HTTP de base.
La frontière entre 400 et 422 : 400 concerne les requêtes cassées (JSON mal formé, syntaxe invalide), 422 les requêtes bien formées mais sémantiquement fausses. Utilisez 409 quand le problème est un conflit avec l’état actuel de la ressource.
Où vous le rencontrerez
- Laravel renvoie 422 avec un objet
errorsquand la validation échoue sur une requête JSON. - Ruby on Rails : les applications affichent les enregistrements de formulaire échoués avec le statut « unprocessable ».
- FastAPI répond 422 quand les données de la requête ne correspondent pas au modèle déclaré.
- IndexNow renvoie 422 quand les URL soumises n’appartiennent pas à l’hôte ou que la clé ne correspond pas.
Impact SEO
Aucun pour les pages ordinaires : les robots n’envoient ni formulaires ni données d’API. Une URL publique qui renvoie 422 à un GET est cassée, et Google la traiterait comme un 4xx et la retirerait. Le 422 touche le SEO au moment de la soumission d’URL. Si IndexNow rejette votre lot, vérifiez que chaque URL se trouve sur le même hôte que votre fichier de clé. L’outil d’envoi IndexNow permet de vérifier le fichier de clé avant l’envoi.
Comment le corriger
En tant que client, lisez le corps de la réponse : un bon 422 nomme chaque champ en échec et la raison. En tant que développeur d’API, renvoyez des erreurs lisibles par machine, champ par champ, comme le fait Laravel par défaut :
HTTP/1.1 422 Unprocessable Content
Content-Type: application/json
{
"message": "The email field must be a valid email address.",
"errors": {
"email": ["The email field must be a valid email address."]
}
}
Pour confirmer que vos pages publiques ne sont pas touchées, passez-les dans le vérificateur de statut HTTP.
Questions fréquentes
Quelle est la différence entre 400 et 422 ?
400 signifie que la requête est mal formée, par exemple un JSON invalide. 422 signifie que la requête est bien formée, mais que les valeurs échouent à la validation ou aux règles métier.
Pourquoi IndexNow renvoie-t-il 422 ?
IndexNow utilise 422 quand les URL soumises n’appartiennent pas à l’hôte pour lequel vous les avez soumises, ou quand la clé ne correspond pas. Soumettez les URL d’un seul hôte à la fois, avec le fichier de clé hébergé sur ce même hôte.
« Unprocessable Entity » est-il identique à « Unprocessable Content » ?
Oui. Les deux désignent le statut 422. La RFC 9110 a renommé la formule d’origine de WebDAV, et de nombreux frameworks utilisent encore l’ancien nom.