2 years 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!
59 Replies
2 years 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 Inin the top rightYou’ll be redirected to https://app.zigma.io
Sign in or sign up and social login is available
Open the
Networktab in the browser's developer toolsRefresh the page and you'll see requests with a
431status code in theNetworkpanel
2 years 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?
2 years ago
just on 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 🤔
2 years 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


2 years ago
gotcha
2 years 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
2 years ago
have you tried running your site locally and sending artificially large headers to your app via curl or postman?
2 years ago
no errors here too, even when going to main dashboard or main page

2 years ago
you could try in a incognito window?
2 years 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
2 years ago
can you attempt the same test with this -
2 years ago
yep
2 years 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? 🤔
2 years ago
your domain is behind cloudflare right?
2 years ago
i have additional logging in place, can you try it again?
2 years 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"2 years 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 🤔

2 years ago
right but that request would also include cookies?
yes, my bad. the default credentials is same-origin, so cookies will be included
2 years ago
please send the same sized headers to that link
2 years ago
200?
2 years ago
7682 bytes of just headers, and cookie itself is only 6395 bytes
2 years 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.
2 years ago
im not able to do that right now, sorry
2 years ago
yep! -
2 years ago
im sorry but that request is not something we can fulfil right now
It looks like the node version isn't following the NIXPACKS_NODE_VERSION 🤔


2 years ago
why do you say that? it says node 20 in that table
2 years ago
Only a major version can be specified. For example, 18.x or 20.
2 years 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)
2 years ago
railway would return a plaintext response when you exceed the header limit size, you have since shown me an html page
a year 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
a year ago
Please open your own thread, OP was not running into any Railway limitations, but you might be.


