a month ago
The public domain for my SurrealDB service stopped routing traffic externally. The service is healthy internally (Node.js backend connects fine via surrealdb.railway.internal:8000), but the public domain returns nothing.
What I tried:
Regenerated the public domain (new: surrealdb-production-f61b.up.railway.app)
Created a TCP Proxy (maglev.proxy.rlwy.net:41987) — ECONNRESET
Redeployed the service multiple times
Health check via curl returns empty response
Logs show the server is running:
Started web server on 0.0.0.0:8000
Is there a known issue with public routing for scratch-based images? Any way to force the edge proxy to reconnect?
Pinned Solution
a month ago
Why are you using a tcp proxy for a web server? use an http proxy
11 Replies
a month ago
I assume the TCP proxy is mapped to port 8000?
Yes, the TCP proxy is mapped to port 8000.
The service has PORT=8000 as environment variable and the
start command uses --bind 0.0.0.0:8000 explicitly.
a month ago
Why are you using a tcp proxy for a web server? use an http proxy
You're right. I was using the default TCP proxy.
How do I switch to HTTP proxy in Railway?
Should I just remove the TCP proxy and generate a new public domain?
a month ago
Yes
Removed the TCP proxy. The HTTP public domain surrealdb-production-f61b.up.railway.app
is still not responding to curl requests (empty response). The service logs show
"Started web server on 0.0.0.0:8000" and the internal network works fine.
Any other steps needed to fix the HTTP routing?
a month ago
Since you are using a scratch-based image, I suggest you try to bind to both IPv4 and IPv6 using --bind [::]:8000 intead of --bind 0.0.0.0:8000
a month ago
surrealdb-production-f61b.up.railway.app works fine for me, redirects to surrealdb. Maybe its your cache?
a month ago
Did you fix it?
Status changed to Solved 0x5b62656e5d • about 1 month ago