Skip to main content

🧩 Error 422 – Contenido no procesable (Unprocessable Content)

El error 422 significa que el servidor recibió la solicitud correctamente, el formato es válido (JSON, formulario, XML, etc.), pero no puede procesar los datos enviados porque contienen errores de semántica, validación o lógica.

En resumen:
El servidor entiende qué enviaste, pero no puede trabajar con eso debido a inconsistencias o información inválida.

Muy común en APIs REST, formularios web, validaciones de backend y frameworks como Laravel, Django, Node.js, Rails, etc.


Causas más comunes

  • Datos inválidos según las reglas del servidor (campos requeridos vacíos, formato incorrecto).

  • 📝 Errores de validación en formularios (correo mal formado, número inválido, etc.).

  • 🧮 Valores fuera de rango (edad negativa, fecha futura imposible, etc.).

  • 🔐 JSON bien formado, pero con estructura incorrecta o inesperada.

  • 🗃️ Campos obligatorios faltantes en la solicitud.

  • 📅 Fechas imposibles o mal formateadas.

  • 🔧 Modelo o entidad que rechaza los datos al intentar guardarlos.

  • 🌐 Archivo subido, pero inválido según reglas (mimes, tamaño, integridad, etc.).


🔧 Soluciones recomendadas

1️⃣ Validar datos antes de enviar la solicitud

Asegúrate de cumplir las reglas del servidor:

  • Campos requeridos

  • Longitudes mínimas/máximas

  • Formatos válidos

  • Datos coherentes

Ejemplo de JSON incorrecto:


{ "email": "juan@", "edad": -5 }

2️⃣ Revisar la respuesta de error del servidor

La mayoría de APIs devuelven detalles:


{ "errors": { "email": ["El correo no es válido"], "edad": ["La edad debe ser mayor que 0"] } }

Esto te dice exactamente qué corregir.


3️⃣ Corregir las reglas de validación en el backend

Ejemplo en Laravel:


$request->validate([ 'email' => 'required|email', 'edad' => 'required|integer|min:1' ]);

En Node.js (Express + Joi):


schema.validateAsync(req.body);

En Django:


form.is_valid()

4️⃣ Enviar datos en el formato esperado

Si la API espera:

  • JSON → envía JSON

  • Multipart → usa multipart/form-data

  • Form-urlencoded → usa ese formato

Enviar contenido correcto evita muchos 422.


5️⃣ Verificar integridad de archivos o uploads

Puede ocurrir 422 cuando:

  • El MIME no coincide

  • El archivo está corrupto

  • Supera límites de validación

  • El archivo no es permitido


6️⃣ Actualizar la solicitud si estás enviando datos incompletos

Campos faltantes = 422 en la mayoría de APIs.


7️⃣ Corregir estructura del JSON

El JSON puede estar bien formado, pero ser inválido lógicamente:

Ejemplo incorrecto:


{ "usuario": "Arturo", "direccion": { "calle": null } }

Si el backend exige “calle” → 422.


🔐 Consejo Pro

En sistemas modernos, el 422 se usa como “error elegante” para indicar fallos de validación sin romper la aplicación.

Haz que tu app:

  • Muestre mensajes claros

  • Marque los campos incorrectos

  • Evite enviar datos defectuosos

  • Corrija automáticamente valores inválidos cuando sea posible

Esto mejora UX y reduce llamadas al backend.