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

3 months 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

5 Replies

Status changed to Awaiting Railway Response Railway 3 months ago


3 months 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 3 months ago


Railway
BOT

3 months 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 3 months ago


luc42ei
HOBBYOP

3 months 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 3 months ago


3 months ago

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


Status changed to Awaiting User Response Railway 3 months ago


Railway
BOT

3 months 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 3 months ago


2 months 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 2 months ago


Status changed to Solved brody 2 months ago


luc42ei
HOBBYOP

2 months ago

great, thanks!


Status changed to Awaiting Railway Response Railway 2 months ago


Status changed to Solved luc42ei 2 months ago


Welcome!

Sign in to your Railway account to join the conversation.

Loading...