Cannot connect to Redis via Private Network

jtourkosPRO

7 months 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

jtourkosPRO

7 months ago

N/A


7 months ago

please read this docs section -


7 months ago

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


jtourkosPRO

7 months ago

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


7 months ago

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


jtourkosPRO

7 months ago


7 months ago

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


jtourkosPRO

7 months 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


7 months ago

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


7 months ago

?


jtourkosPRO

7 months ago

on Railway after building while deploying


7 months ago

is redis in the same project?


jtourkosPRO

7 months ago

yeah


7 months ago

are you pro?


jtourkosPRO

7 months ago

yup


7 months ago

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


jtourkosPRO

7 months ago

where is that?


7 months ago

in the service settings


jtourkosPRO

7 months ago

i don't see such a setting 🤔


7 months ago


jtourkosPRO

7 months ago

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


7 months ago

oh my bad, sorry for assuming


jtourkosPRO

7 months ago

no worries 🙂


7 months ago

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


jtourkosPRO

7 months ago

Alright, thanks!


7 months ago

and I'll need a project id for that


tansandotethPRO

a month 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


tansandotethPRO

a month 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,
    },
  });