HTTP Error 431 - Request Header Field(s) Too Large

Hello guys, we are encountering an HTTP Error 431 - Request Header Field(s) Too Large when deploying our Next.js application using the Nixpacks builder on Railway. We have thoroughly investigated and ruled out other potential causes for this error on our end. Could you please confirm if there is any request header size limit enforced by Railway? If so, is there a way to increase the allowed size for request headers? Any guidance or suggestions on resolving this issue would be greatly appreciated, thank you for your help!
49 Replies
Percy
Percy3mo ago
Project ID: 4b7ea996-5769-4729-abf5-aba577a03dd8
Brody
Brody3mo ago
please send a link that show this error
TianenPang
TianenPangOP3mo ago
Hi, since our app restricts access after authentication, we can’t provide a public URL at the moment, but below are the detailed steps to reproduce 🙏🏻 Steps to reproduce: 1. Go to https://zigma.io 2. Click Sign In in the top right 3. You’ll be redirected to https://app.zigma.io 4. Sign in or sign up and social login is available 5. Open the Network tab in the browser's developer tools 6. Refresh the page and you'll see requests with a 431 status code in the Network panel Please let me know if you need any further information
Brody
Brody3mo ago
We have thoroughly investigated and ruled out other potential causes for this error on our end.
can you shine some light on how you've come to this conclusion? just on https://app.zigma.io/dashboard/ i do not see any fetch reqs that are failing
TianenPang
TianenPangOP3mo ago
can you shine some light on how you've come to this conclusion?
1. Disabled Cloudflare proxy, using only DNS (issue persists) 2. Simulated the deployment environment locally with Docker (no issues found) 3. No relevant logs in Next.js (no issues found) At this point, I can't confirm if there are any additional limitations in Railway or Nixpacks 🤔
Brody
Brody3mo ago
to be perfectly honest with you, thats unfortunately not a very compressive test
TianenPang
TianenPangOP3mo ago
just on https://app.zigma.io/dashboard/ i do not see any fetch reqs that are failing
Did you visit https://zigma.io first? Some cookies are set there and shared with the subdomain (app.zigma.io), which leads to the Request Header Field(s) Too Large issue
No description
No description
Brody
Brody3mo ago
gotcha nope no errors still
TianenPang
TianenPangOP3mo ago
to be perfectly honest with you, thats unfortunately not a very compressive test
You're right, since this issue is quite tricky and first time encountering it 😢 any suggestions would be greatly appreciated
Brody
Brody3mo ago
have you tried running your site locally and sending artificially large headers to your app via curl or postman?
ThallesComH
ThallesComH3mo ago
no errors here too, even when going to main dashboard or main page
No description
ThallesComH
ThallesComH3mo ago
you could try in a incognito window? or maybe something about your specific session is too big that may cause some issue with headers, fresh social login account would be a nice test
TianenPang
TianenPangOP3mo ago
have you tried running your site locally and sending artificially large headers to your app via curl or postman?
I tried setting 10+ cookies with different names for the auth token and included them in the request, but couldn’t reproduce the issue locally. (the request header size during testing was around 18 KB, which is much larger than in production)
or maybe something about your specific session is too big that may cause some issue with headers, fresh social login account would be a nice test
Thank you for your response, unfortunately, similar issues are also occurring with some new users with diff browsers
TianenPang
TianenPangOP3mo ago
What’s confusing now is where this response is coming from 🤔
No description
Brody
Brody3mo ago
can you attempt the same test with this - https://utilities.up.railway.app/raw
TianenPang
TianenPangOP3mo ago
with the same request headers?
Brody
Brody3mo ago
yep send headers as big or bigger than what you send to your production app when you are getting that 431
TianenPang
TianenPangOP3mo ago
after testing step by step, the response is consistently successful for the 431 request, I noticed that the x-railway-request-id is missing from the response headers, can this be understood as the request not yet reaching Railway? 🤔
Brody
Brody3mo ago
your domain is behind cloudflare right?
TianenPang
TianenPangOP3mo ago
Yeah, but DNS only
Brody
Brody3mo ago
i have additional logging in place, can you try it again?
TianenPang
TianenPangOP3mo ago
Just tried
No description
Brody
Brody3mo ago
send the headers here please
TianenPang
TianenPangOP3mo ago
these are the headers from the minimal issue isolation
Accept: "text/x-component",
Next-Action: "8702f98122602daac9043a744a5517df7c4e6826",
Next-Router-State-Tree: "%5B%22%22%2C%7B%22children%22%3A%5B%22dashboard%22%2C%7B%22children%22%3A%5B%5B%22workspaceId%22%2C%227cfcc9dd-30d2-4a32-8917-1d6f1e16978b%22%2C%22d%22%5D%2C%7B%22children%22%3A%5B%22projects%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2C%22%2Fdashboard%2F7cfcc9dd-30d2-4a32-8917-1d6f1e16978b%2Fprojects%22%2C%22refresh%22%5D%7D%5D%7D%5D%7D%5D%7D%2Cnull%2Cnull%2Ctrue%5D"
Accept: "text/x-component",
Next-Action: "8702f98122602daac9043a744a5517df7c4e6826",
Next-Router-State-Tree: "%5B%22%22%2C%7B%22children%22%3A%5B%22dashboard%22%2C%7B%22children%22%3A%5B%5B%22workspaceId%22%2C%227cfcc9dd-30d2-4a32-8917-1d6f1e16978b%22%2C%22d%22%5D%2C%7B%22children%22%3A%5B%22projects%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2C%22%2Fdashboard%2F7cfcc9dd-30d2-4a32-8917-1d6f1e16978b%2Fprojects%22%2C%22refresh%22%5D%7D%5D%7D%5D%7D%5D%7D%2Cnull%2Cnull%2Ctrue%5D"
Brody
Brody3mo ago
what about the cookie? there is no way thats all the headers right but that request would also include cookies?
TianenPang
TianenPangOP3mo ago
yes, my bad. the default credentials is same-origin, so cookies will be included
Brody
Brody3mo ago
please send the same sized headers to that link
TianenPang
TianenPangOP3mo ago
sent
Brody
Brody3mo ago
200?
TianenPang
TianenPangOP3mo ago
yeah, getting 200 with total 8.22KB content
No description
Brody
Brody3mo ago
7682 bytes of just headers, and cookie itself is only 6395 bytes I don't think you are replaying the request to my endpoint correctly, those are miniscule sizes
TianenPang
TianenPangOP3mo ago
I can confirm that I included all the headers from the 431 request, I've double-checked each request header
No description
TianenPang
TianenPangOP3mo ago
Could you please check the complete HTTP logs for Project ID: 4b7ea996-5769-4729-abf5-aba577a03dd8? I don't see any records of the 431 error in my HTTP log panel.
Brody
Brody3mo ago
im not able to do that right now, sorry
TianenPang
TianenPangOP3mo ago
Is there a way to specify the Node version for the Nixpacks builder? 👀
TianenPang
TianenPangOP3mo ago
How can I request to view the complete HTTP logs? 👀
Brody
Brody3mo ago
im sorry but that request is not something we can fulfil right now
TianenPang
TianenPangOP3mo ago
It looks like the node version isn't following the NIXPACKS_NODE_VERSION 🤔
No description
No description
Brody
Brody3mo ago
why do you say that? it says node 20 in that table
TianenPang
TianenPangOP3mo ago
will it use the same minor version as NIXPACKS_NODE_VERSION? 🤔
Brody
Brody3mo ago
Only a major version can be specified. For example, 18.x or 20.
TianenPang
TianenPangOP3mo ago
Is there any way to determine if these 431 requests have reached Railway?
Brody
Brody3mo ago
does your app itself not log requests?
TianenPang
TianenPangOP3mo ago
The error fetch is from Next.js and fetch itself for rendering, but it's unclear which program / process returned the 431 (Railway or something else, the Cloudflare is DNS only already)
Brody
Brody3mo ago
railway would return a plaintext response when you exceed the header limit size, you have since shown me an html page
Duchess
Duchess3mo ago
New reply sent from Help Station thread:
I have the same issue, and I can tell it is railway as I am not using cloudflare proxy and the response includes the header (Server: railway-edge)Do I need to provide any other information for this?
You're seeing this because this thread has been automatically linked to the Help Station thread.
Brody
Brody3mo ago
Please open your own thread, OP was not running into any Railway limitations, but you might be.
Want results from more Discord servers?
Add your server