Custom-domain HTTPS endpoint timing out despite healthy container
spareable
PROOP

a month ago

Plan: Pro

Symptom: external requests to my custom domain time out (HTTP 000, no response received). Container logs show clean startup with the Node server bound to 0.0.0.0:8080. No errors after startup, no SIGTERM, no crash logged. Restarted the container several times — same result.

GET / (root path) DOES respond — returns its expected content in ~280ms via server: railway-edge (us-west2). All /api/* paths time out.

Has been confirmed on my end:

Explicit app.listen(PORT, '0.0.0.0', ...) bind

Public Networking port set to 8080 (matches the container's listen port)

No custom healthcheck path configured

app.set('trust proxy', 1) set in Express

Rate-limit middleware passes module-load and request-time validation

No Stopping Container events after the latest startup other than expected deploy replacements

Suspect: edge proxy routing for this domain is wedged or pointing at a stale container instance. Please investigate the routing layer between the custom domain and the active deployment.

Deploy ID and project info: happy to share privately if needed.

$20 Bounty

3 Replies

Railway
BOT

a month 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 Railway about 1 month ago


spareable
PROOP

a month ago

Not pleased that my thread was marked as public without asking me. I specifically upgraded to Pro in order to ask Railway directly instead of the community and then their bot makes my inquiry visible to everyone???I had sensitive info included....


ve-jo
HOBBY

a month ago

One extra data point: I tested this externally just now and /api/ no longer times out for me.

curl -I https://api.spareable.org/
# HTTP/2 200

curl -I https://api.spareable.org/api/
# HTTP/2 404
# server: railway-edge
# ratelimit-limit: 200
# ratelimit-policy: 200;w=900

So at least from my side, the custom domain, TLS, Railway edge, and the request path into the Express app are working. Also, the rate-limit headers on /api/ show that your API middleware is being reached.


asepsaputra
HOBBY

a month ago

Hi bro,

If only /api/* routes time out, the issue is more likely happening inside the application layer, not the domain routing layer.

Please check which middleware or dependencies only run on /api/*, for example:

  • database calls
  • auth/session middleware
  • rate-limit store
  • Redis/cache connection
  • external API calls
  • request validation/body parsing
  • route handlers that may not send a response

A good test is to add a very simple API route before all other /api middleware:

app.get('/api/ping', (req, res) => {
  res.status(200).json({ ok: true });
});

If /api/ping works, Railway routing is fine and the issue is inside one of the real API handlers or dependencies.

If /api/ping also times out, then please check whether any global /api middleware is hanging before the route is reached.

Because / works, I would not assume stale edge routing as the first cause.


Welcome!

Sign in to your Railway account to join the conversation.

Loading...