Código de error 422 - ¿Qué es y cómo solucionarlo?
Este tutorial abarca los siguientes temas:
El código de error 422 significa “Entidad no procesable”. Es uno de los numerosos códigos de estado HTTP 4XX que identifican un problema del lado del cliente cuando el navegador o la aplicación de un visitante intenta conectarse a un servidor.
Este error aparece en casos particulares, principalmente relacionados con interacciones de API, por lo que no es uno de los más comunes. Afecta principalmente a los desarrolladores web que utilizan la integración de API, por lo que es menos probable que lo veas mientras navegas en línea.
Este artículo profundizará en qué es el código de error 422, qué lo causa, cómo solucionarlo y algunas de las mejores prácticas para evitarlo.
La causa más común del mensaje de error es que la solicitud es semánticamente incorrecta. Esto significa que la estructura de la solicitud es sintácticamente correcta, pero las instrucciones que contiene no tienen significado y el servidor no puede procesarlas.
Ejemplo de un código de estado 422
Tomemos como ejemplo el siguiente caso: imagina que estás intentando registrarte en una nueva cuenta en un sitio web. Completas un formulario con tu nombre de usuario, correo electrónico y edad.
Cuando haces clic en el botón “Enviar”, la información que ingresaste se envía al servidor del sitio web. Los datos están en un formato llamado XML, que es una forma de estructurar datos, y el servidor los usará para crear tu cuenta. Así es como se verían los datos XML cuando se envíen al servidor:
john_doe
john.doe@example.com
veinticinco
Sin embargo, algunos de los datos de entrada en el cuerpo de la solicitud XML no cumplen con los criterios del servidor.
- Campo de edad: El servidor espera que la edad sea un número (como 25), pero recibió la palabra “veinticinco”. No puede procesarla porque no sabe cómo convertir palabras en números.
- Problemas con el nombre de usuario: El nombre de usuario “john_doe” podría estar en uso por otra persona. El servidor tiene reglas que impiden nombres de usuario duplicados, lo que provoca errores de validación.
Dado que el servidor no puede utilizar la entrada del usuario para crear su nueva cuenta, responde con un error 422 Unprocessable Entity, que incluye varios encabezados HTTP. Estos encabezados proporcionan contexto adicional sobre la respuesta y el servidor. Así es como podrían verse los encabezados en el escenario de ejemplo:
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
¿Cómo solucionar el error 422?
Antes de empezar a desentrañar el problema, es importante encontrar su causa raíz. Esto le ahorrará tiempo y esfuerzo y le orientará en la dirección correcta. Afortunadamente, existen varias herramientas que pueden proporcionar información sobre cuál podría ser el problema.
Utilizar el Comprobador de Estado HTTP
Puedes utilizar un comprobador de estado HTTP para confirmar el tipo de problema con el que se encuentra cuando tus solicitudes a un determinado sitio web o aplicación devuelven un error.
Los verificadores de estado HTTP funcionan enviando una solicitud HTTP a la URL enviada y enumerando los códigos de error de las respuestas del servidor web.
El uso de esta herramienta le permitirá tener una idea clara de si se trata de un estado 422 u otro código de respuesta y podrá centrarse en resolver el problema exacto.
Verifique los registros del servidor
Los registros del servidor de tu sitio web son otra fuente de información sobre por qué tu sitio web devuelve un código de estado 422. Si eres el propietario o el webmaster y tu sitio web genera el error, busque los registros del servidor, que deberían estar ubicados en el panel de control de tu proveedor de alojamiento web.
Los usuarios de SiteGround pueden encontrar registros de acceso sin procesar en Site Tools > Estadísticas > Registros de acceso. Aquí, cada visita y el código de estado HTTP correspondiente del sitio web respectivo se registran para que los propietarios y webmasters lo examinen.
Utilizar herramientas de depuración
Al solucionar un error 422, las herramientas de depuración pueden resultar muy útiles para identificar y resolver los problemas subyacentes. Permiten examinar de cerca la interacción entre el cliente y el servidor, lo que proporciona información sobre posibles problemas de validación de datos.
Existen varios tipos de herramientas de depuración adecuadas para diferentes entornos y flujos de trabajo, como Postman para pruebas de API, Fiddler para capturar tráfico HTTP o herramientas para desarrolladores de navegadores (por ejemplo, Google Developer Console) para aplicaciones web. Estas herramientas lo ayudan a analizar las solicitudes y respuestas intercambiadas con el servidor.
Tomemos como ejemplo la Google Search Console, ya que está disponible en todos los navegadores Chrome. Si encuentra un error en una página en particular, haga clic con el botón derecho en ella y seleccione Inspeccionar.
Abra la pestaña Red y vuelva a crear los eventos y las condiciones que originalmente desencadenaron el error. La solicitud que produce la respuesta 422 debe estar marcada en rojo. Haga clic en ella y luego examine la pestaña Encabezados. Aquí, puede encontrar información detallada sobre la respuesta HTTP y el servidor en la sección Encabezados de respuesta.
¿Cómo solucionar el error 422?
Una vez que hayas realizado la resolución de problemas y hayas determinado que tienes un código de respuesta 422, es hora de ponerte manos a la obra y solucionarlo. Naturalmente, la causa del problema determina la solución. A continuación, se muestran algunas de las estrategias más comunes para resolver el error 422.
Corregir la entrada de datos
Revisar y ajustar los datos que se envían en la solicitud para garantizar que cumplan con los requisitos del servidor. Esto incluye corregir errores de sintaxis, garantizar que los formatos de datos sean válidos (por ejemplo, fechas, correos electrónicos) y proporcionar información precisa.
Por ejemplo, si recibe un error al enviar un formulario de contacto, asegúrese de que los datos estén en el formato correcto (la edad es un número entero, la dirección de correo electrónico sigue el formato convencional, etc.).
Complete todos los campos obligatorios
Asegúrese de que todos los campos de datos obligatorios de la solicitud estén completos. Consulte la documentación de la API o los requisitos del formulario para identificar qué campos son necesarios y asegurarse de que no queden en blanco.
Coincidir con el tipo de datos correctamente
Verifique que los tipos de datos de cada campo de la solicitud coincidan con lo que espera el servidor.
Por ejemplo, si un campo requiere un número entero (como la edad o el código postal), asegúrese de que no se envíen valores booleanos ni de cadena en su lugar.
Reparar bases de datos dañadas (para WordPress)
Cuando se trata de WordPress, una base de datos dañada puede impedir que un sitio web procese las solicitudes correctamente y producir un error 422.
Tiene varias opciones para reparar una base de datos de WordPress: puede usar un plugin con capacidades de reparación de bases de datos, reparar tablas desde phpMyAdmin o usar el modo de reparación de base de datos integrado de WordPress.
Uno de los plugins más populares es WP-DBManager, pero tiene una salvedad: al momento de escribir este artículo, el complemento no se ha actualizado durante más de un año y no se ha probado con las últimas tres versiones principales de WordPress. Por lo tanto, debes tener cuidado y tomar precauciones, como crear una copia de seguridad de tu sitio web antes de usar el complemento.
El modo de reparación integrado de WordPress es más fiable, aunque requiere más esfuerzo. Los usuarios de SiteGround pueden seguir estos pasos para habilitarlo en Site Tools:
- Ve a Site Tools > Sitio Web > Gestor archivos.
- Ve a la carpeta raíz de tu sitio web. La ruta es tudominio.com/public_html.
- Seleccione el archivo wp-config.php y presione Editar.
- Justo encima de la línea “/* That’s all, stop editing! Happy publishing. */”, agrega el siguiente código:
define('WP_ALLOW_REPAIR', true);
- Presione Guardar para conservar los cambios.
- Abre tu navegador y escriba la siguiente dirección:
https://tudominio.com/wp-admin/maint/repair.php
Reemplaza tudominio.com con el dominio de tu propio sitio web. - Elija entre Reparar base de datos y Reparar y optimizar la base de datos.
- Una vez que hayas terminado, vuelve a editar el archivo wp-config.php. Elimina la línea que añadiste anteriormente:
define(‘WP_ALLOW_REPAIR’, true); - Guarde los cambios en el archivo wp-config.php después de eliminar la línea.
¿Cómo prevenir el error 422?
La implementación de las mejores prácticas en la validación de datos y el mantenimiento de aplicaciones garantiza que los datos enviados al servidor sean precisos y completos. Por lo tanto, evitará la mayoría de los escenarios que podrían provocar un código de respuesta 422. A continuación, se muestran algunas estrategias eficaces para evitar este error:
- Implementación de la validación de formularios: Utilice una validación de formularios integral tanto del lado del cliente como del servidor. La validación del lado del cliente proporciona información e instrucciones inmediatas a los usuarios, mientras que la validación del lado del servidor garantiza que solo los datos válidos lleguen al servidor.
- Validación del lado del servidor: Establezca reglas estrictas de validación del lado del servidor para verificar que los datos entrantes cumplan con todos los criterios (campos obligatorios, tipos de datos y formatos). Esta capa de validación es crucial ya que los usuarios malintencionados no pueden eludirla.
- Actualizaciones periódicas del código: Mantén tu aplicación y sus dependencias actualizadas. Las actualizaciones periódicas garantizan que se beneficie de los últimos parches y mejoras de seguridad, lo que reduce el riesgo de errores debido a código desactualizado o incompatible.
Causas del error 422
Comprender las causas del código de estado 422 es fundamental para solucionar y prevenir problemas de manera eficaz. A continuación, se indican algunas razones habituales por las que puede producirse este error:
- Datos no válidos: La solicitud contiene datos que no cumplen con el formato o las restricciones esperados, como direcciones de correo electrónico no válidas o fechas con formato incorrecto.
- Tipo de datos incorrecto: Los campos de la solicitud tienen tipos de datos que no coinciden con lo que el servidor espera. Por ejemplo, un campo contiene una cadena en lugar de un número entero.
- Errores semánticos: La solicitud es sintácticamente correcta pero semánticamente errónea. En otras palabras, los datos no cumplen con las reglas lógicas o la lógica empresarial definida por el servidor.
- Campos obligatorios faltantes: Uno o más campos obligatorios faltan en la solicitud, lo que impide que el servidor la procese.
- Reglas estrictas del servidor: El servidor tiene reglas de validación estrictas que la solicitud no cumple y que a menudo requieren formatos o valores de datos precisos.
- Solicitudes de API no válidas: Las llamadas de API no se ajustan a los parámetros o al esquema definidos, por lo que el servidor las rechaza.
- Errores del lado del servidor: Los problemas en el servidor, como una lógica de validación mal configurada, pueden generar un error 422.
- Tablas de bases de datos corruptas: En aplicaciones como WordPress, la corrupción de la base de datos puede impedir que se procesen correctamente las solicitudes válidas.
Variaciones del código de estado 422
El error 422 “Entidad no procesable” tiene muchas variantes. El mensaje de error exacto depende de la aplicación, el servidor web y el problema relacionado con la interacción. A continuación, se muestran algunas de las formas más frecuentes del código de estado 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
¿Cuál es el impacto del error 422 en el SEO y la experiencia del usuario?
El código de error 422 puede afectar significativamente la optimización de motores de búsqueda (SEO) y la experiencia del usuario. Por lo tanto, debes tenerlo en cuenta en caso de que tu sitio web comience a generarlo y ser proactivo para solucionarlo.
Impacto en el SEO
- Problemas de rastreo e indexación: Los motores de búsqueda pueden encontrar errores 422 al intentar rastrear e indexar tu sitio web. Si las páginas esenciales muestran este error constantemente, es posible que no se indexen, lo que reduce la visibilidad en los resultados de búsqueda.
- Señales negativas de SEO: Los errores 422 frecuentes pueden indicar a los motores de búsqueda que un sitio web tiene problemas técnicos, lo que podría afectar su clasificación. Los motores de búsqueda priorizan los sitios web con experiencias de usuario fluidas y sin errores.
- Accesibilidad del contenido: Si el contenido es inaccesible debido a errores 422, puede resultar en oportunidades perdidas de clasificación en palabras clave relevantes, lo que disminuye el rendimiento SEO general del sitio.
Impacto en la experiencia del usuario:
- Usuarios frustrados: Encontrar un error 422 puede frustrar a los usuarios, ya que indica que sus acciones, como enviar formularios o ingresar datos, no se están procesando. Esto puede generar insatisfacción y una mayor tasa de rebote.
- Pérdida de confianza y credibilidad: Los errores persistentes pueden socavar la confianza de los usuarios en la fiabilidad de un sitio web, lo que podría disuadirlos de regresar.
- Tasas de conversión reducidas: Si los usuarios no pueden completar las acciones deseadas debido a errores 422, cómo comprar productos o registrarse en servicios, esto puede afectar directamente las tasas de conversión y los ingresos.
En general, deberías supervisar periódicamente el rendimiento de SEO de tu sitio web y las señales que envía a los motores de búsqueda. Una herramienta muy útil es Google Search Console, que te permite ver los códigos de respuesta que tu sitio web envía a los rastreadores de Google, detectar posibles problemas y solucionarlos antes de que perjudiquen tu puntuación de SEO.
¿Cuál es la diferencia entre los códigos de estado 400 y 422?
Los códigos de estado 400 “Solicitud incorrecta” y 422 “Entidad no procesable” describen una solicitud de cliente problemática, pero señalan problemas diferentes.
Con una 400 Bad Request, el servidor web le dice al cliente que no puede entender la solicitud debido a una sintaxis mal formada, un marco de solicitud no válido o problemas estructurales.
En una respuesta 422 Unprocessable Entity, el servidor web informa al cliente que entiende la sintaxis de la solicitud pero no puede procesarla debido a errores semánticos (por ejemplo, datos no válidos, datos faltantes, errores lógicos, etc.)
Conclusión
Gestionar eficazmente el código de error 422 es esencial para ofrecer una experiencia de usuario fluida y optimizar el rendimiento de SEO. Si comprendes sus causas e implementa prácticas sólidas, puedes reducir su aparición.
Las medidas proactivas, como las actualizaciones periódicas de código y la validación integral de datos, abordan problemas inmediatos y mejoran la confiabilidad y el profesionalismo generales de su aplicación web o sitio web.