10 days ago
rvice thenetwork in project fractalscrm won't accept proxy traffic despite the container being verifiably running.
Project ID: c5cd96c8-81ca-42c7-a83b-5af1994ab73d Service ID: fff89b87-4ab6-4f74-b800-aa6dd5b2869c Environment: production
Working: Container starts, runs prisma migrate deploy against postgres.railway.internal:5432 successfully, next start reports ✓ Ready listening on 0.0.0.0:$PORT (verified in deploy logs). Outbound networking works.
Failing: Every healthcheck attempt reports service unavailable. Public domain returns {"status":"error","code":404,"message":"Application not found"} even when healthcheck is removed.
Tried: HOSTNAME 0.0.0.0 and ::, PORT 8080 and 3000 (with matching targetPort), service domain delete+recreate (new subdomain), Dockerfile/BuildKit with next start and output: standalone/node server.js. All produce the same "service unavailable" failure.
Last failed deployment ID: eff9aaff-dbf9-438b-803f-02c18516a9dc
Please check whether Railway's edge proxy is configured to route to this service.
1 Replies
10 days 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 • 10 days ago
10 days ago
I had this same issue, your 404 error is an internal issue. This is all project setup. The railway proxies and stuff talk to each other over ipv6. Yes you need to bind ipv6 (::) not 0.0.0.0 but also don't override PORT and let it auto populate. you also want to share for my frontend I bind it via uvicorn main:app --host :: --port 8000 not --port $PORT. You also want to check the resolved value of your env var for the URL's. I was seeing web.site.page:$PORT in the resolved value not web.site.page:8000 which was wrong. I updated the URL to like then I hardcoded my internal API port to 8000 so it resolved properly.
so to solve this:
- bind :: IPV6 to talk to internal stuff, hardcode port on internal service (for me its a python api) to 8000/8080. (for example mine is
API_INTERNAL_URL=http://api.railway.internal:8000which is using the derived URL of my python apiservice with the hardcoded 8000 for internal railway coms. - for your backend app launch with
--host :: --port 8000 - refer to that service via that
API_INTERNAL_URLor whatever env var you want to use for it. use the env var sharing system to share it to other services.
If this doesn't help I will need more info on what service is erroring