Error: getaddrinfo ENOTFOUND postgres.railway.internal

ghostorder28HOBBY

a year ago

I'm trying to connect a node app to a postgresql database (both are in the same railway project) through the private network so I'm using the DATABASE_PRIVATE_URL in my node app, but then I get this error in the logs Error: getaddrinfo ENOTFOUND postgres.railway.internal.

Before I was connecting my node app to my postgresql database through the public url (so using DATABASE_URL env variable) and all was going fine, but then I realized the higher costs this public connection implies (rookie mistake) so I changed it to the private network however now I have this issue.

0 Replies

ghostorder28HOBBY

a year ago

93ff8b35-df80-4f04-9f54-b6e4fa647fbf


a year ago

add a 3 second sleep to the beginning of your start script


ghostorder28HOBBY

a year ago

gotcha, let me try it


ghostorder28HOBBY

a year ago

still is giving the same error


a year ago

can you show me how you have implemented the suggested change?


ghostorder28HOBBY

a year ago

sure, I just added "sleep 4 && "


ghostorder28HOBBY

a year ago

the start script indeed is delayed by 4 secs


a year ago

can you show me a screenshot of your railway project


ghostorder28HOBBY

a year ago

you mean the project page?


ghostorder28HOBBY

a year ago

where all the services are


a year ago

are you deploying this with nixpacks or a dockerfile?


a year ago

Are you using Payload CMS?


ghostorder28HOBBY

a year ago

dockerfile


ghostorder28HOBBY

a year ago

yes


a year ago

does your dockerfile use an alpine based image?


ghostorder28HOBBY

a year ago

yep node:18.8-alpine


a year ago

then have a look at this docs section

the 3 second sleep is still needed though


ghostorder28HOBBY

a year ago

ok Ill check it


ghostorder28HOBBY

a year ago

thank you @Brody I added the ENABLE_ALPINE_PRIVATE_NETWORKING=true metioned in the docs and now my app is working fine


a year ago

awsome


a year ago

this is an issue for me after seemingly trying everything here

  • added a 10s timeout before start on my service

  • added ENABLE_ALPINE_PRIVATE_NETWORKING=true in the service using it + redis

schema:

{
  "$schema": "https://railway.app/railway.schema.json",
  "build": {
    "builder": "NIXPACKS",
    "buildCommand": "echo \"no-build\""
  },
  "deploy": {
    "numReplicas": 1,
    "startCommand": "sleep 10 && cd apps/xxxx && pnpm tsx server",
    "healthcheckPath": "/",
    "sleepApplication": true,
    "restartPolicyType": "ON_FAILURE",
    "restartPolicyMaxRetries": 10
  }
}

1227365520077099000
1227365520354050000
1227365520651718700


a year ago

Error: getaddrinfo ENOTFOUND xxx-redis.railway.internal

a year ago

i might add that it adds if i use the public url of redis instead


a year ago

and that it's referenced throguh a variable, i haven't hard-coded it

1227366069661077500


a year ago

ioredis?


a year ago

yup


a year ago

please read the docs page for that -


a year ago

you aren't using alpine, so I'm not sure why you set that variable, and I'm really not sure why you set it on the redis service


a year ago

A web application that makes client-side requests cannot communicate to another service over the private network.

are you saying that because my app is public, it can't connect to redis over the public network?


a year ago

bro


a year ago

click the little button that says ioredis


a year ago

oops, i am a moron


a year ago

thank you so much, setting my REDIS_URL to the below does indeed work

${{redis.REDIS_PRIVATE_URL}}?family=0`

apologies for not being able to RTFM, i was blind


a year ago

no worries