Redis failing to connect with
ECONNREFUSED

castle-linkPRO

10 months ago

Hi team, today our apps started getting the error when trying to connect with our redis instance:

{"code":"ECONNREFUSED","error":"connect ECONNREFUSED 127.0.0.1:6379","errorLevel":"standard","label":"WorkerClientRedis","name":"Error","stack":"Error: connect ECONNREFUSED 127.0.0.1:6379\n    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16)"}

We've read through a couple threads and tried the following:

  1. We are using private redis, so we've ensured we have family=0 set on the connections

  2. We tried switching to the public connection. We're able to connect and run on app with the public connection locally, but we still get errors in prod.

We're using ioredis with the following settings:

const BASE_REDIS_OPTIONS: RedisOptions = {
    reconnectOnError: () => true,
    connectTimeout: 5000,
    retryStrategy: (times) => Math.min(times * 50, 2000),
    maxRetriesPerRequest: 0,
    enableReadyCheck: true,
    autoResubscribe: true,
    keepAlive: 1000 * 30,
    family: 0,

This was working for us until today

0 Replies

castle-linkPRO

10 months ago

d5830106-c562-4490-bfe0-6636a0c4a844


10 months ago

ECONNREFUSED 127.0.0.1:6379

the redis client is trying to connect to what would be its default options, please make sure you have the client config setup correctly


castle-linkPRO

10 months ago

Thanks we found and resolved the issue


10 months ago

awsome, do you mind sharing it?


castle-linkPRO

10 months ago

yea ioredis 's Redis class claims that it can be constructed by passing an object with the connection options as follows:

import Redis from 'ioredis'

const new Redis({
path: ...,
port: ...,
host: ...,
...otherRedisOptions
})

Or by passing the connection url as follows:

import Redis from 'ioredis'

const new Redis(REDIS_URL, {
...otherRedisOptions
})

We has recently switched to the first approach and that seemed to have broke things. Switching back to the second syntax did the trick


10 months ago

perfect, thanks for the explanation!


Redis failing to connect with `ECONNREFUSED` - Railway Help Station