Cannot connect to Redis via Private Network

jtourkos
PRO

a year ago

In my nodejs app I create a BeeQueue instance like:

const eventProcessingQueue = new BeeQueue(`queue_name`, {
  redis: { url: appSettings.redisConnectionString },
});

appSettings.redisConnectionString is set - correctly - to the internal Redis URL, but when trying to deploy (after successfully building),
I get Redis connection to redis.railway.internal:6379 failed - getaddrinfo ENOTFOUND redis.railway.internal.

Switching to the public URL, works fine.

Tried appending family=6 (and 0 which is the default) at the connection string.
Also tried creating a redis client and seting the socket family to 6 but then it fails for another reason (trying to connect to localhost).

I also have setup a sleep when starting.
The service I'm connecting from and the redis instance, both are in the same project.

Any ideas?

Thank you!

2 Replies

jtourkos
PRO

a year ago

N/A


a year ago

please read this docs section -


a year ago

you might not be directly using ioredis, but more than likely it's what beequeue is using under the hood


jtourkos
PRO

a year ago

Hi @Brody 👋
I already tried that, still the same issue. Beequeue uses https://github.com/redis/node-redis.


a year ago

does it use some very old version of that module? perhaps before it supported ipv6


jtourkos
PRO

a year ago


a year ago

okay fair, are you getting these errors locally on when on Railway


jtourkos
PRO

a year ago

The only difference is that when I try something like

const redisClient = createClient({
      url: appSettings.redisConnectionString,
      socket: {
        family: 6,
      },
    });

i now get the same error but it tries to connect to localhost


a year ago

that just means that's incorrect syntax and the client is falling back to it's default values for the host


a year ago

?


jtourkos
PRO

a year ago

on Railway after building while deploying


a year ago

is redis in the same project?


jtourkos
PRO

a year ago

yeah


a year ago

are you pro?


jtourkos
PRO

a year ago

yup


a year ago

can you try switching to the v2 runtime in the service settings


jtourkos
PRO

a year ago

where is that?


a year ago

in the service settings


jtourkos
PRO

a year ago

i don't see such a setting 🤔


a year ago


jtourkos
PRO

a year ago

Yeah, i know where the service settings are, I just don't find something to switch to v2 🙂


a year ago

oh my bad, sorry for assuming


jtourkos
PRO

a year ago

no worries 🙂


a year ago

let me get back to you when I'm at my computer, might end up needing a minimal reproducible example


jtourkos
PRO

a year ago

Alright, thanks!


a year ago

and I'll need a project id for that


tansandoteth
PRO

5 months ago

Did you resolve this? I am having the same issue and can't seem to find a solution other than using the public url


tansandoteth
PRO

5 months ago

I found this combination worked for me with redis 4.7.0

  const redisClient = createClient({
    url: Deno.env.get("REDIS_URL"), // https://docs.railway.com/reference/errors/enotfound-redis-railway-internal
    socket: {
      family: 6,
    },
  });

Cannot connect to Redis via Private Network - Railway Help Station