7 months ago
Hi Railway team,
I’m experiencing an issue with my Node.js service in Railway.
Project:
dynamic‑vitalityService:
gunvald‑backend(Node.js + Express)Environment:
productionRepository:
gunvald-backendon GitHub
We recently updated our server.js so the app always listens on port 8880. Logs show it starts successfully, applies the DB schema, and outputs: Server listening on port 8880railway.com. There are no subsequent errors, and the container remains running.
However, both the public Meta‑Edge URL (https://gunvald-backend-production.up.railway.app/health) and the new TCP proxy (yamabiko.proxy.rlwy.net:29001) return a 502 error. The Meta‑Edge page says “Application failed to respond”gunvald-backend-production.up.railway.app; the TCP proxy URL (both with and without the port) reports “The remote server does not speak TLS” or “Certificate verify failed: hostname mismatch”yamabiko.proxy.rlwy.net. We tried both HTTP and HTTPS schemes.
We removed the old proxy on port 3000 and created a new TCP proxy for port 8880 and redeployed. The Networking section now shows:
yamlKopioiMuokkaa
Public Networking: gunvald-backend-production.up.railway.app → Port 8880 (Meta Edge) TCP Proxy: yamabiko.proxy.rlwy.net:29001 → :8880
But the domains still return 502s.
Could you help us understand why the Meta‑Edge domain isn’t connecting to our service despite it running and listening on port 8880? Is there an additional configuration needed to expose HTTP traffic on this port or to downgrade the edge network? Any guidance would be greatly appreciated.
Thank you!
2 Replies
7 months ago
Hey there! We've found the following might help you get unblocked faster:
If you find the answer from one of these, please let us know by solving the thread!
7 months ago
This thread has been marked as public for community involvement, as it does not contain any sensitive or personal information. Any further activity in this thread will be visible to everyone.
Status changed to Open brody • 7 months ago
7 months ago
Based on your description, you're running into two separate issues with distinct causes. The 502 error on the Meta-Edge URL (...up.railway.app) is a classic symptom of a health check failure. Even though your app is running, Railway's edge proxy needs to get a successful response from a health check endpoint before it will route traffic to your container. By default, it checks the root path (/), and if that path is slow or doesn't return a 2xx status code quickly, the check fails and the proxy returns a 502. The second error on your TCP proxy URL (...rlwy.net:29001)—"does not speak TLS"—is happening because you are trying to connect to it using HTTPS. A TCP proxy on Railway is a raw, pass-through connection that does not handle SSL/TLS. It forwards the traffic directly to your plain HTTP server, which doesn't know how to respond to a secure handshake.
Fortunately, both issues have straightforward fixes. To solve the Meta-Edge 502 error, go to your service's Networking tab in the Railway dashboard and set the Healthcheck Path to a fast and reliable endpoint in your application, such as /health, then redeploy. This tells the proxy to use your specified endpoint for the check, which should allow it to pass successfully. To fix the TCP proxy error, you simply need to connect to it using the correct protocol. Access the URL using http:// instead of https://. Your connection string should be http://yamabiko.proxy.rlwy.net:29001. This will send a plain HTTP request that your Express server can understand and respond to correctly.