a month ago
Hi Railway Support team,
I am running a voicebot application that streams raw binary audio data over WebSockets. The connection works perfectly in Chrome and Firefox, but it almost immediately drops with a 1006 error in Safari.
The same issue never occurs when testing locally. We are pretty sure the issue is tied to WebSocket compression. Safari has a known WebKit bug where it crashes when trying to decompress continuous binary frames on the fly.
We disabled compression entirely on our Python backend. Railway Edge Proxy still intercepts the connection and forces the Sec-WebSocket-Extensions: permessage-deflate header in the response back to the client, which reactivates compression and causes Safari to crash.
Is there any configuration available to prevent the Edge Proxy from forcing permessage-deflate on the client side?
1 Replies
a month ago
There is no setting to control WebSocket extension negotiation (permessage-deflate) on our HTTP edge proxy. As a workaround, you can use TCP Proxy instead, which forwards raw TCP traffic and bypasses the HTTP edge proxy entirely, giving your application full control over the WebSocket handshake and extension headers. You would need to handle TLS termination in your application when using this approach. We also recommend submitting this as a feature request on our feedback board so we can track demand for disabling compression at the edge proxy level.
Status changed to Awaiting User Response Railway • about 1 month ago
24 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 • 24 days ago