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.