4xx · Errores del cliente
Error 431 Request Header Fields Too Large: qué significa y cómo solucionarlo
El error 431 Request Header Fields Too Large significa que las cabeceras de la petición superan el límite del servidor. En el 90 % de los casos la culpa es de las cookies: demasiadas, o muy grandes, acumuladas para ese dominio. En desarrollo con localhost es muy frecuente porque varias aplicaciones comparten cookies.
Qué significa el código 431
Node.js limita las cabeceras a 16 KB por defecto y responde 431. Nginx, en cambio, responde 400 "Request Header Or Cookie Too Large" ante el mismo problema.
Causas habituales del error 431
- Cookies acumuladas en localhost de varios proyectos.
- Tokens JWT muy grandes guardados en cookies.
- Cabeceras de referencia (Referer) enormes por URLs muy largas.
Si eres visitante de la web
- Borra las cookies del sitio (o de localhost en desarrollo).
Cómo solucionar el error 431
- Reduce el tamaño de las cookies y no guardes datos grandes en ellas.
- En Node.js, sube el límite con --max-http-header-size=32768.
Configuración y comandos
Node.js
bash
node --max-http-header-size=32768 server.js
# o en package.json: "start": "NODE_OPTIONS='--max-http-header-size=32768' react-scripts start"Ejemplo de respuesta
http
HTTP/1.1 431 Request Header Fields Too LargeHerramientas para comprobarlo
Preguntas frecuentes
¿Por qué me sale 431 en localhost:3000?
Porque en localhost se acumulan cookies de todas las aplicaciones que has probado. Borrar las cookies de localhost lo soluciona.