Code d'erreur 422 : qu'est-ce que c'est et comment le corriger ?
Table des matières
Le code d’erreur 422 signifie « Unprocessable Entity ». Il s’agit de l’un des nombreux codes d’état HTTP 4XX qui identifient un problème côté client lorsque le navigateur ou l’application d’un visiteur tente de se connecter à un serveur.
Cette erreur apparaît dans des cas particuliers, impliquant principalement des interactions API, elle n’est donc pas courante. Elle concerne principalement les développeurs web utilisant l’intégration API, vous êtes donc moins susceptible de la voir lors de la navigation en ligne.
Cet article examinera ce qu’est le code d’erreur 422, ses causes, comment le résoudre et certaines des meilleures pratiques pour l’éviter.
La cause la plus fréquente du message d’erreur est que la requête est sémantiquement incorrecte. Cela signifie que la structure de la requête est syntaxiquement correcte, mais les instructions qu’elle contient n’ont aucune signification et le serveur ne peut pas les traiter.
Exemple de code d’état 422
Prenons le cas suivant comme exemple. Imaginez que vous essayez de créer un nouveau compte sur un site web. Vous remplissez un formulaire avec votre nom d’utilisateur, votre adresse e-mail et votre âge.
Lorsque vous cliquez sur le bouton « Envoyer », les informations que vous avez saisies sont envoyées au serveur du site web. Les données sont dans un format appelé XML, qui est une façon de structurer les données, et le serveur les utilisera pour créer votre compte. Voici à quoi peuvent ressembler les données XML lorsqu’elles sont envoyées au serveur :
<user>
<username>john_doe</username>
<email>john.doe@example.com</email>
<age>vingt-cinq</age>
</user>
Cependant, certaines des données d’entrée dans le corps de la requête XML ne répondent pas aux critères du serveur.
- Champ Âge : Le serveur s’attend à ce que l’âge soit un nombre (comme 25), mais il a reçu le mot « vingt-cinq ». Il ne peut pas traiter cela car il ne sait pas comment convertir les mots en nombres.
- Problèmes de nom d’utilisateur : Le nom d’utilisateur “john_doe” est peut-être déjà utilisé par quelqu’un d’autre. Le serveur a des règles qui empêchent les noms d’utilisateur en double, ce qui provoque des erreurs de validation.
Étant donné que le serveur ne peut pas utiliser la saisie de l’utilisateur pour créer votre nouveau compte, il répond avec une erreur 422 Unprocessable Entity, qui inclut plusieurs en-têtes HTTP. Ces en-têtes fournissent un contexte supplémentaire sur la réponse et le serveur. Voici à quoi pourraient ressembler les en-têtes dans le scénario d’exemple :
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 245
Date: Mon, 30 Oct 2023 12:34:56 GMT
Server: Apache/2.4.41 (Ubuntu)
X-Powered-By: PHP/7.4.3
Comment résoudre l’erreur 422 ?
Avant de commencer à résoudre le problème, il est important de trouver sa cause profonde. Cela vous fera gagner du temps et des efforts et vous orientera dans la bonne direction. Heureusement, plusieurs outils peuvent fournir des informations sur la nature du problème.
Utiliser le vérificateur d’état HTTP
Vous pouvez utiliser un vérificateur d’état HTTP pour confirmer le type de problème auquel vous êtes confronté lorsque vos requêtes vers un certain site web ou une certaine application renvoient une erreur.
Les vérificateurs d’état HTTP fonctionnent en envoyant une requête HTTP à l’URL que vous avez soumise et en répertoriant les codes d’erreur des réponses du serveur web.
L’utilisation d’un tel outil vous donnera une idée claire si vous avez affaire à un statut 422 ou à un autre code de réponse et vous concentrera sur la résolution du problème exact.
Vérifiez les journaux du serveur
Les journaux du serveur de votre site web sont une autre source d’informations sur la raison pour laquelle votre site web renvoie un code d’état 422. Si vous êtes le propriétaire ou le webmaster et que votre site web génère des erreurs, recherchez les journaux du serveur, qui doivent se trouver dans le panneau de contrôle de votre hébergeur web.
Les utilisateurs de SiteGround peuvent trouver les journaux d’accès bruts dans Site Tools > Statistiques > Journaux d’accès. Ici, chaque visite et le code d’état HTTP correspondant du site web respectif sont enregistrés pour que les propriétaires et les webmasters puissent les examiner.
Utiliser les outils de débogage
Lors du dépannage d’une erreur 422, les outils de débogage peuvent s’avérer très utiles pour identifier et résoudre les problèmes sous-jacents. Ils vous permettent d’examiner de près l’interaction entre le client et le serveur, offrant ainsi des informations sur les problèmes potentiels de validation des données.
Il existe différents types d’outils de débogage adaptés à différents environnements et flux de travail, tels que Postman pour les tests d’API, Fiddler pour la capture du trafic HTTP ou les outils de développement de navigateur (par exemple, Google Developer Console) pour les applications web. Ces outils vous aident à analyser les requêtes et les réponses échangées avec le serveur.
Prenons l’exemple de la console des développeurs Google, qui est facilement accessible dans tous les navigateurs Chrome. Si vous rencontrez une erreur sur une page particulière, faites un clic droit dessus et sélectionnez Inspecter.
Ouvrez l’onglet Réseau et recréez les événements et conditions qui ont déclenché l’erreur à l’origine. La requête qui génère la réponse 422 doit être marquée en rouge. Cliquez dessus, puis examinez son onglet En-têtes. Vous y trouverez des informations détaillées sur la réponse HTTP et le serveur dans la section En-têtes de réponse.
Comment corriger l’erreur 422 ?
Une fois que vous avez effectué le dépannage et établi que vous avez affaire à un code de réponse 422, il est temps de vous retrousser vos manches et de le résoudre. Naturellement, la cause du problème détermine la solution. Voici quelques-unes des stratégies les plus courantes pour résoudre l’erreur 422.
Corriger la saisie des données
Vérifiez et ajustez les données envoyées dans la requête pour vous assurer qu’elles répondent aux exigences du serveur. Cela comprend la correction d’éventuelles erreurs de syntaxe, la vérification de la validité des formats de données (par exemple, les dates, les e-mails) et la fourniture d’informations précises.
Par exemple, si vous recevez l’erreur lors de l’envoi d’un formulaire de contact, assurez-vous que les données sont au bon format : l’âge est un entier, l’adresse e-mail suit le format conventionnel, etc.
Remplissez tous les champs obligatoires
Assurez-vous que tous les champs de données de demande obligatoires sont remplis. Consultez la documentation de l’API ou les exigences du formulaire pour identifier les champs nécessaires et assurez-vous qu’ils ne sont pas laissés vides.
Faire correspondre correctement le type de données
Vérifiez que les types de données de chaque champ de la requête correspondent à ce que le serveur attend.
Par exemple, si un champ nécessite un entier (comme l’âge ou le code postal), assurez-vous qu’aucune valeur de chaîne ou booléenne n’est envoyée à la place.
Réparer les bases de données corrompues (pour WordPress)
En ce qui concerne WordPress, une base de données corrompue peut empêcher un site web de traiter correctement les demandes et produire une erreur 422.
Vous disposez de plusieurs options pour réparer une base de données WordPress : vous pouvez utiliser un plugin avec des capacités de réparation de base de données, réparer les tables depuis phpMyAdmin, ou utiliser le mode de réparation de base de données WordPress intégré.
L’un des plugins les plus populaires est WP-DBManager, mais il comporte une mise en garde : au moment de la rédaction de cet article, le plugin n’a pas été mis à jour depuis plus d’un an et n’a pas été testé avec les trois dernières versions majeures de WordPress. Vous devez donc être prudent et prendre des précautions, comme créer une sauvegarde de votre site web avant d’utiliser le plugin.
Le mode de réparation intégré de WordPress est plus fiable, même s’il nécessite plus d’efforts. Les utilisateurs de SiteGround peuvent suivre ces étapes pour l’activer dans Site Tools :
- Accédez à Site Tools > Site > Gestionnaire de fichiers.
- Accédez au dossier racine de votre site web. Le chemin d’accès est votredomaine.com/public_html.
- Sélectionnez le fichier wp-config.php et appuyez sur Modifier.
- Juste au-dessus de la ligne « /* That’s all, stop editing! Happy publishing. */ », ajoutez le code suivant :
define('WP_ALLOW_REPAIR', true);
- Appuyez sur Enregistrer pour conserver les modifications.
- Ouvrez votre navigateur et saisissez l’adresse suivante :
https://votredomaine.com/wp-admin/maint/repair.php
Remplacez votredomaine.com par le domaine de votre propre site web. - Choisissez entre Réparer la base de données et Réparer et optimiser la base de données.
- Une fois terminé, revenez à l’édition du fichier wp-config.php. Supprimez la ligne que vous avez ajoutée précédemment :
define(‘WP_ALLOW_REPAIR’, true); - Enregistrez les modifications dans le fichier wp-config.php après avoir supprimé la ligne.
Comment éviter l’erreur 422 ?
La mise en œuvre des meilleures pratiques en matière de validation des données et de maintenance des applications garantit que les données envoyées au serveur sont exactes et complètes. Ainsi, vous éviterez la plupart des scénarios susceptibles de provoquer un code de réponse 422. Voici quelques stratégies efficaces pour éviter cette erreur :
- Mise en œuvre de la validation de formulaire – Utilisez une validation de formulaire complète côté client et côté serveur. La validation côté client fournit un retour d’information et des instructions immédiates aux utilisateurs, tandis que la validation côté serveur garantit que seules les données valides parviennent au serveur.
- Validation côté serveur – Établissez des règles strictes de validation côté serveur pour vérifier que les données entrantes répondent à tous les critères (champs obligatoires, types de données et formats). Cette couche de validation est cruciale car les utilisateurs malveillants ne peuvent pas la contourner.
- Mises à jour régulières du code – Maintenez votre application et ses dépendances à jour. Les mises à jour régulières vous permettent de bénéficier des derniers correctifs et améliorations de sécurité, réduisant ainsi le risque d’erreurs dues à un code obsolète ou incompatible.
Causes de l’erreur 422
Il est essentiel de comprendre les causes d’un code d’état 422 pour un dépannage et une prévention efficaces. Voici quelques raisons courantes pour lesquelles cette erreur peut se produire :
- Données non valides – La demande contient des données qui ne respectent pas le format ou les contraintes attendus, telles que des adresses e-mail non valides ou des dates mal formatées.
- Type de données incorrect – Les champs de la requête contiennent des types de données qui ne correspondent pas à ce que le serveur attend. Par exemple, un champ contient une chaîne au lieu d’un entier.
- Erreurs sémantiques – La requête est syntaxiquement correcte mais sémantiquement erronée. En d’autres termes, les données ne respectent pas les règles logiques ou la logique métier définies par le serveur.
- Champs obligatoires manquants – Un ou plusieurs champs obligatoires sont absents de la requête, empêchant le serveur de la traiter.
- Règles strictes du serveur – Le serveur a des règles de validation strictes que la requête ne parvient pas à respecter, nécessitant souvent des formats ou des valeurs de données précis.
- Requêtes API non valides – Les appels API ne sont pas conformes aux paramètres ou au schéma définis, le serveur les rejette donc.
- Erreurs côté serveur – Des problèmes sur le serveur, tels qu’une logique de validation mal configurée, peuvent entraîner une erreur 422.
- Tables de base de données corrompues – Pour des applications comme WordPress, la corruption de la base de données peut empêcher le traitement correct des requêtes valides.
Variations du code d’état 422
L’erreur 422 « Unprocessable Entity » comporte de nombreuses variantes. Le message d’erreur exact dépend de l’application, du serveur web et du problème impliqué dans l’interaction. Vous trouverez ci-dessous quelques-unes des cadrages les plus fréquemment rencontrés du code d’état 422.
- 422 Error “Unprocessable Entity”
- HTTP error code 422 unprocessable entity
- Error Code: 422
- error submitting cart: error: request failed with status code 422
- error: request failed with status code 422
Quel est l’impact de l’erreur 422 sur le référencement et l’expérience utilisateur ?
Le code d’erreur 422 peut avoir un impact considérable sur l’optimisation des moteurs de recherche (SEO) et l’expérience utilisateur. Vous devez donc en tenir compte au cas où votre site web commencerait à le produire et être proactif pour le corriger.
Impact sur le référencement
- Problèmes d’exploration et d’indexation – Les moteurs de recherche peuvent rencontrer des erreurs 422 lorsqu’ils tentent d’explorer et d’indexer votre site web. Si des pages essentielles renvoient systématiquement cette erreur, elles risquent de ne pas être indexées, ce qui entraîne une visibilité réduite dans les résultats de recherche.
- Signaux SEO négatifs – Des erreurs 422 fréquentes peuvent signaler aux moteurs de recherche qu’un site web présente des problèmes techniques, ce qui peut affecter son classement. Les moteurs de recherche donnent la priorité aux sites web offrant une expérience utilisateur fluide et sans erreur.
- Accessibilité du contenu – Si le contenu est inaccessible en raison d’erreurs 422, cela peut entraîner des opportunités manquées de classement sur des mots clés pertinents, diminuant ainsi les performances SEO globales du site.
Impact sur l’expérience utilisateur
- Utilisateurs frustrés – Une erreur 422 peut frustrer les utilisateurs, car elle indique que leurs actions, telles que l’envoi de formulaires ou la saisie de données, ne sont pas traitées. Cela peut entraîner une insatisfaction et un taux de rebond plus élevé.
- Perte de confiance et de crédibilité – Des erreurs persistantes peuvent miner la confiance des utilisateurs dans la fiabilité d’un site web, les dissuadant potentiellement de revenir.
- Taux de conversion réduits – Si les utilisateurs ne peuvent pas effectuer les actions souhaitées en raison d’erreurs 422, telles que l’achat de produits ou l’inscription à des services, cela peut avoir un impact direct sur les taux de conversion et les revenus.
Dans l’ensemble, vous devez surveiller régulièrement les performances SEO de votre site web et les signaux envoyés aux moteurs de recherche. Un outil pratique est Google Search Console, qui vous permet de voir les codes de réponse que votre site web envoie aux robots d’exploration de Google, de détecter les problèmes potentiels et de les résoudre avant qu’ils ne nuisent à votre score SEO.
Quelle est la différence entre les codes d’état 400 et 422 ?
Les codes d’état 400 « Bad Request » et 422 « Unprocessable Entity » décrivent une demande client problématique, mais ils signalent des problèmes différents.
Avec une 400 Bad Request, le serveur web indique au client qu’il ne peut pas comprendre la requête en raison d’une syntaxe mal formée, d’une trame de requête non valide ou de problèmes structurels.
Dans une réponse 422 Unprocessable Entity, le serveur web informe le client qu’il comprend la syntaxe de la requête mais ne peut pas la traiter en raison d’erreurs sémantiques (par exemple, des données non valides, des données manquantes, des erreurs logiques, etc.)
Conclusion
La gestion efficace du code d’erreur 422 est essentielle pour offrir une expérience utilisateur fluide et optimiser les performances SEO. En comprenant ses causes et en mettant en œuvre des pratiques robustes, vous pouvez réduire son occurrence.
Des mesures proactives telles que des mises à jour régulières du code et une validation complète des données résolvent les problèmes immédiats et améliorent la fiabilité et le professionnalisme globaux de votre application web ou de votre site web.