9 months ago
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!
1 Replies
9 months ago
please send a link that show this error
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:
Go to https://zigma.io
Click
Sign In
in the top rightYou’ll be redirected to https://app.zigma.io
Sign in or sign up and social login is available
Open the
Network
tab in the browser's developer toolsRefresh the page and you'll see requests with a
431
status code in theNetwork
panel
9 months 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?
9 months ago
just on [https://app.zigma.io/dashboard/](https://app.zigma.io/dashboard/)
i do not see any fetch reqs that are failing
can you shine some light on how you've come to this conclusion?
Disabled Cloudflare proxy, using only DNS (issue persists)
Simulated the deployment environment locally with Docker (no issues found)
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 🤔
9 months ago
to be perfectly honest with you, thats unfortunately not a very compressive test
just on https://[app.zigma.io](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
9 months ago
gotcha
9 months ago
nope no errors still
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
9 months ago
have you tried running your site locally and sending artificially large headers to your app via curl or postman?
9 months ago
no errors here too, even when going to main dashboard or main page
9 months ago
you could try in a incognito window?
9 months ago
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
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
9 months ago
can you attempt the same test with this -
9 months ago
yep
9 months ago
send headers as big or bigger than what you send to your production app when you are getting that 431
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? 🤔
9 months ago
your domain is behind cloudflare right?
9 months ago
i have additional logging in place, can you try it again?
9 months ago
send the headers here please
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"
9 months ago
what about the cookie? there is no way thats all the headers
this request info comes from the request's initiator, in other words, the request here resulted in a 431 error 🤔
9 months ago
right but that request would also include cookies?
yes, my bad. the default credentials
is same-origin
, so cookies will be included
9 months ago
please send the same sized headers to that link
9 months ago
200?
9 months ago
7682 bytes of just headers, and cookie itself is only 6395 bytes
9 months ago
I don't think you are replaying the request to my endpoint correctly, those are miniscule sizes
I can confirm that I included all the headers from the 431 request, I've double-checked each request header
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.
9 months ago
im not able to do that right now, sorry
9 months ago
yep! -
9 months ago
im sorry but that request is not something we can fulfil right now
9 months ago
why do you say that? it says node 20 in that table
9 months ago
Only a major version can be specified. For example, 18.x or 20.
9 months ago
does your app itself not log requests?
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)
9 months ago
railway would return a plaintext response when you exceed the header limit size, you have since shown me an html page
9 months ago
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)
I am ready to provide any additional information for this if it is needed
9 months ago
Please open your own thread, OP was not running into any Railway limitations, but you might be.