Error: getaddrinfo ENOTFOUND postgres.railway.internal
ghostorder28
HOBBYOP

2 years 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.

34 Replies

ghostorder28
HOBBYOP

2 years ago

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


brody
EMPLOYEE

2 years ago

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


ghostorder28
HOBBYOP

2 years ago

gotcha, let me try it


ghostorder28
HOBBYOP

2 years ago

still is giving the same error


brody
EMPLOYEE

2 years ago

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


ghostorder28
HOBBYOP

2 years ago

sure, I just added "sleep 4 && "


ghostorder28
HOBBYOP

2 years ago

the start script indeed is delayed by 4 secs


brody
EMPLOYEE

2 years ago

can you show me a screenshot of your railway project


ghostorder28
HOBBYOP

2 years ago

you mean the project page?


ghostorder28
HOBBYOP

2 years ago

where all the services are


brody
EMPLOYEE

2 years ago

are you deploying this with nixpacks or a dockerfile?


medim
MODERATOR

2 years ago

Are you using Payload CMS?


ghostorder28
HOBBYOP

2 years ago

dockerfile


ghostorder28
HOBBYOP

2 years ago

yes


brody
EMPLOYEE

2 years ago

does your dockerfile use an alpine based image?


ghostorder28
HOBBYOP

2 years ago

yep node:18.8-alpine


brody
EMPLOYEE

2 years ago

then have a look at this docs section

the 3 second sleep is still needed though


ghostorder28
HOBBYOP

2 years ago

ok Ill check it


ghostorder28
HOBBYOP

2 years ago

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


brody
EMPLOYEE

2 years ago

awsome


katt
HOBBY

2 years 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


katt
HOBBY

2 years ago

Error: getaddrinfo ENOTFOUND xxx-redis.railway.internal

katt
HOBBY

2 years ago

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


katt
HOBBY

2 years ago

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

1227366069661077500


brody
EMPLOYEE

2 years ago

ioredis?


katt
HOBBY

2 years ago

yup


brody
EMPLOYEE

2 years ago

please read the docs page for that -


brody
EMPLOYEE

2 years 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


katt
HOBBY

2 years 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?


brody
EMPLOYEE

2 years ago

bro


brody
EMPLOYEE

2 years ago

click the little button that says ioredis


katt
HOBBY

2 years ago

oops, i am a moron


katt
HOBBY

2 years 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


brody
EMPLOYEE

2 years ago

no worries


Loading...