HTTP 400 Bad Request
El error de cliente genérico: algo en la solicitud misma está mal, y el servidor se niega a adivinar.
Qué significa HTTP 400
HTTP 400 Bad Request significa que el servidor leyó la solicitud y la rechazó por inválida antes de hacer ningún trabajo real. Es el error de cliente comodín: sintaxis malformada, parámetros inválidos, cookies corruptas o cabeceras que el servidor se niega a procesar.
A diferencia de 401 o 403, un 400 no dice nada sobre permisos — la solicitud estaba rota al llegar. Las APIs a menudo adjuntan un cuerpo JSON explicando exactamente qué campo falló en la validación.
Causas comunes de los errores 400
- JSON o XML malformado en el cuerpo de la solicitud (comas finales, comillas incorrectas, payload truncado).
- Parámetros de consulta faltantes o inválidos, o valores que fallan la validación del lado del servidor.
- Cookies corruptas o demasiado grandes — la causa clásica de 400 persistentes en sitios grandes para un usuario.
- Cabecera Content-Type incorrecta, así que el servidor parsea el cuerpo con el formato equivocado.
- Errores de codificación de URL: espacios sin escapar, comillas o caracteres no ASCII en la cadena de consulta.
Cómo solucionarlo como usuario
- Recarga la página; si el 400 persiste, borra las cookies de ese sitio — las cookies corruptas son la causa más común.
- Revisa la URL en busca de errores tipográficos o caracteres alterados al copiar y pegar.
- Prueba una ventana de incógnito para descartar extensiones que reescriban las solicitudes.
Cómo solucionarlo como desarrollador
- Valida los payloads JSON antes de enviarlos; registra el cuerpo exacto de la solicitud que recibió el servidor.
- Devuelve un cuerpo de respuesta que nombre el campo inválido — un 400 escueto desperdicia el tiempo de depuración de todos.
- Revisa los límites del servidor en el tamaño de cabeceras y cookies (nginx large_client_header_buffers, etc.).
- Usa 422 para entradas bien formadas pero semánticamente inválidas si tu API distingue entre ambos casos.
Ejemplo de respuesta
HTTP/1.1 400 Bad Request
Content-Type: application/json
{"error":"validation_failed","field":"email","message":"not a valid address"}Preguntas frecuentes
¿Es un error 400 culpa mía como visitante?
Normalmente lo causan cookies obsoletas o un enlace roto más que algo que hayas hecho tú. Borrar las cookies del sitio soluciona la mayoría de los casos.
¿Cuál es la diferencia entre 400 y 422?
400 significa que la solicitud no pudo parsearse o es estructuralmente inválida; 422 significa que se parseó bien pero falló la validación semántica. Muchas APIs usan 400 para ambos casos.
¿Por qué un usuario recibe 400 mientras que a todos los demás les funciona?
Casi siempre cookies demasiado grandes o corruptas en el navegador de ese usuario que exceden los límites de cabecera del servidor.