11 days ago
My custom domain shows verified in Networking but all requests return 502 with x-railway-fallback: true. The service is healthy — the same container responds normally on the legacy *.up.railway.app URL. Only the custom domain is broken at the edge.
Setup
- Service type: API (Node/Express)
- Custom domain configured on the service
- Target port set to the port the process listens on (matches legacy domain config)
DNS status
- CNAME record pointing to Railway target — verified green in Railway UI
- TXT
_railway-verifyrecord — verified green in Railway UI - External DNS resolution (
dig) returns the Railway CNAME target + edge IP correctly
TLS status
- Certificate emitted correctly for the custom domain
openssl s_clientconfirmssubject=CN=<my-custom-domain>,issuer=Let's Encrypt
Symptom — same service, two domains, different behavior
Legacy *.up.railway.app domain (works):
HTTP/2 200
access-control-allow-credentials: true
content-type: application/json; charset=utf-8
Custom domain (broken):
HTTP/2 502
content-type: application/json
server: railway-hikari
x-railway-fallback: true
x-railway-request-id: CRZxNzONReihCCH4pHNmDw
x-railway-edge: mia1
Already tried
- Redeploy of the service — no change
- Waited 30+ minutes after verification turned green — no change
- Confirmed target port in the custom domain config matches the process listening port
- Container proven healthy via the legacy domain (same 200 OK returned continuously)
Looks like the edge routing table wasn't populated for the custom domain after verify. Any way for staff to force-repopulate on your side without me removing + re-adding the domain (which risks changing the DNS values I'd have to reconfigure with my domain registrar)?
Happy to share project ID, service ID, and full request-id in a DM if needed.
Thanks!
1 Replies
11 days ago
This thread has been opened as a bounty so the community can help solve it.
Status changed to Open Railway • 11 days ago
11 days ago
Try redeploying your service.
If that doesn't work, try setting the port to an arbitrary number (eg, 4100) and change the URLs to be mapped to that as well and redeploy.