Firefox WebSocket connections rejected with HTTP 400 by Railway edge proxy
luc42ei
HOBBYOP

a month ago

WebSocket upgrades from Firefox return HTTP 400 from the Railway edge proxy. The same requests from Chromium succeed. The issue is that Firefox sends Connection: keep-alive, Upgrade while Chromium sends Connection: Upgrade — both are valid per RFC 6455 §4.1.

Affected: both *.up.railway.app and custom domains.

Firefox request (fails with 400):

Connection: keep-alive, Upgrade

Upgrade: websocket

Sec-WebSocket-Version: 13

Chromium request (succeeds with 101):

Connection: Upgrade

Upgrade: websocket

Sec-WebSocket-Version: 13

Response headers confirm rejection at edge level:

server: railway-edge

x-railway-cdn-edge: fastly

The request never reaches our application. This affects any WebSocket-based app (Streamlit in our case) for Firefox users.

Solved

4 Replies

Status changed to Awaiting Railway Response Railway about 1 month ago


a month ago

The request reaches your application, but because we incorrectly dropped the hop-by-hop headers, your app returns a 400 status code.

We will look into how we can resolve this.


Status changed to Awaiting User Response Railway about 1 month ago


Railway
BOT

a month ago

This thread has been marked as solved automatically due to a lack of recent activity. Please re-open this thread or create a new one if you require further assistance. Thank you!

Status changed to Solved Railway 28 days ago


luc42ei
HOBBYOP

a month ago

the issue persists. is there a timeline as to when you will be done looking into it?


Status changed to Awaiting Railway Response Railway 26 days ago


a month ago

We are looking at the end of April for the ETA on the fix.


Status changed to Awaiting User Response Railway 26 days ago


Railway
BOT

19 days ago

This thread has been marked as solved automatically due to a lack of recent activity. Please re-open this thread or create a new one if you require further assistance. Thank you!

Status changed to Solved Railway 19 days ago


2 days ago

The fix has rolled out; WebSocket requests with keep-alive in the upgrade header no longer fail.


Status changed to Awaiting User Response Railway 1 day ago


Status changed to Solved brody 1 day ago


Welcome!

Sign in to your Railway account to join the conversation.

Loading...