17 days ago
My service is failing with "Application failed to respond" on the Railway public URL, including /healthz.
Service: Rizin-Your-Pesonal-Life-Coach
Deployment ID: 6ac93b12-afd6-4921-9db1-7c4f8c03091b
Public networking target: Port 8080
App logs confirm the server is running and bound correctly:
[express] serving on 0.0.0.0:8080
I added a top-level request logger before all middleware:
[REQ] METHOD PATH
When I request:
https://rizin-your-pesonal-life-coach-production.up.railway.app/healthz
the browser shows "Application failed to respond", but there is no:
[REQ] GET /healthz
So Railway's public proxy is not reaching the container even though the app is listening on 0.0.0.0:8080. Please investigate the proxy/service routing for this deployment.
- Railway support the Request ID:
Wh5cZBxoSGGd6t9qn6XIxQ
The app logs show it is listening on 0.0.0.0:8080, and Railway public networking targets port 8080. I added a top-level request logger before all middleware, but when I hit /healthz on the Railway-generated domain, no [REQ] GET /healthz log appears. The request fails with “Application failed to respond.” Request ID: Wh5cZBxoSGGd6t9qn6XIxQ. Please investigate public proxy routing to this container.4 Replies
Status changed to Open Railway • 17 days ago
17 days ago
Service: Rizin-Your-Pesonal-Life-Coach
Deployment ID: 1c189617-ee87-4e96-b4b6-3f3ffa4f4d64
The app IS receiving requests (logs show [REQ] GET /healthz),
but the proxy is not returning the response to the client.
Browser shows: "Application failed to respond"
App logs show: [REQ] GET /healthz (request received)
No errors in app logs.
This is a Railway proxy/response routing issue, not an app issue.
17 days ago
Something I'd try is make the application listen to an arbitrary port (eg, 3000), and map the URL to that port as well. See if that does anything.
0x5b62656e5d
Something I'd try is make the application listen to an arbitrary port (eg, 3000), and map the URL to that port as well. See if that does anything.
17 days ago
Tried the arbitrary port test and it still fails.
I changed the app to listen on PORT=3000, updated Railway public networking to target port 3000, redeployed, and the public Railway URL still returns:
Application failed to respond
Latest Request ID: IXabsbgjRlm_LS6qn6XIxQ
The app logs show it starts and binds correctly, but public requests still do not reach the app request logger. So this does not appear to be a stuck 8080 route. It looks like Railway’s public proxy/domain routing is not forwarding traffic to the container at all.
Current evidence:
* App binds to 0.0.0.0
* PORT matches the Railway target port
* Tried both 8080 and 3000
* /healthz is registered before all middleware
* No [REQ] GET /healthz appears when hitting the public URL
* Public URL still returns Railway “Application failed to respond”
Do you think this could be workspace/service routing or account-level activation on Railway? I’m on the Hobby plan, but maybe something is still inactive or the public domain attachment is broken.
17 days ago
Best Guess Answer
- Your logger middleware or
/healthzhandler accepts the request but never sends a response. - Most likely missing
next(), or defined as(req, res)instead of(req, res, next). - Fix:
app.use((req, res, next) => { console.log(\[REQ] ${req.method} ${req.path); next(); }); - Confirm
/healthzends withres.send('ok')orres.sendStatus(200).
Reason
- Your second message showed
[REQ] GET /healthzin logs while the browser still failed. - That means the proxy reached the container — the app just never wrote a response.
- Proxy timed out and returned its fallback page. App-side hang, not routing.
Process of elimination
- Port binding: ruled out — logs confirm
0.0.0.0, and 8080 → 3000 swap didn't help. - Proxy routing: ruled out by your own log showing the request reaching the app.
- Account/plan: ruled out — Hobby serves public traffic fine.
- Confirm:
curl -v https://<your-domain>/healthz— if it hangs ~30–60s withx-railway-fallback: trueheader, diagnosis confirmed.
Status changed to Solved edriss19000 • 17 days ago
