evolution-api icon indicating copy to clipboard operation
evolution-api copied to clipboard

🐛 [BUG] Redis connection fails in v2.3.6 causing infinite disconnect loop or silent crash

Open TrolljanO opened this issue 1 month ago • 1 comments

Welcome!

  • [x] Yes, I have searched for similar issues on GitHub and found none.

What did you do?

Realizei uma instalação limpa da Evolution API v2.3.6 usando Docker Compose com PostgreSQL e Redis na mesma rede bridge. Configurei as seguintes variáveis de ambiente para Redis:

REDIS_ENABLED=true
REDIS_URI=redis://redis:6379
REDIS_PASSWORD=

CACHE_REDIS_ENABLED=true
CACHE_REDIS_URI=redis://redis:6379
CACHE_REDIS_PREFIX_KEY=evolution
CACHE_REDIS_TTL=604800

Docker Compose:

redis:
  image: redis:7-alpine
  container_name: whatsapp_verbo_redis
  restart: unless-stopped
  healthcheck:
    test: ["CMD", "redis-cli", "ping"]
    interval: 10s
    timeout: 5s
    retries: 5
  ports:
    - "6379:6379"
  networks:
    - verbo_network

evolution-api:
  image: evoapicloud/evolution-api:v2.3.6
  container_name: whatsapp_verbo_evolution
  restart: unless-stopped
  env_file:
    - .env
  ports:
    - "8080:8080"
  networks:
    - verbo_network
  depends_on:
    redis:
      condition: service_healthy

Testado e confirmado:

  • ✅ Container Redis reporta status "Healthy" no docker ps
  • docker exec -it whatsapp_verbo_redis redis-cli PING retorna PONG
  • ✅ Conectividade de rede funciona (ping redis dentro do container da Evolution API funciona)
  • ✅ PostgreSQL conecta normalmente (migrações executam com sucesso)

What did you expect?

Esperava que a Evolution API se conectasse ao Redis e iniciasse normalmente, exibindo logs como:

[Evolution API] v2.3.6 ... INFO [Redis] redis connected
[Evolution API] v2.3.6 ... LOG [SERVER] HTTP - ON: 8080

What did you observe instead of what you expected?

Comportamento 1: Loop infinito de erros Redis (quando todas as variáveis Redis estão configuradas)

[Evolution API] v2.3.6 ... VERBOSE [CacheEngine] RedisCache initialized for groups
[Evolution API] v2.3.6 ... ERROR [Redis] redis disconnected
[Evolution API] v2.3.6 ... ERROR [Redis] redis disconnected
[Evolution API] v2.3.6 ... ERROR [Redis] redis disconnected
(repete infinitamente, gerando logs de 800KB+ em segundos)

Comportamento 2: Container trava silenciosamente (quando apenas algumas variáveis Redis estão configuradas)

O container executa migrações Prisma com sucesso, mas trava em node dist/main sem qualquer log adicional:

> [email protected] start:prod
> node dist/main

(sem mais logs, mas o processo Node continua rodando - PID visível no `ps aux`)

Solução temporária encontrada:

Desabilitando completamente o Redis:

REDIS_ENABLED=false
CACHE_REDIS_ENABLED=false

A API inicia normalmente e funciona 100% (QR Code, webhooks, mensagens).

Screenshots/Videos

No response

Which version of the API are you using?

[Evolution API] v2.3.6 Docker: evoapicloud/evolution-api:v2.3.6

What is your environment?

Windows

Other environment specifications

Linux


Outras especificações do ambiente

  • Sistema Operacional: Ubuntu Linux (x86_64)
  • Docker: 27.x
  • Docker Compose: v2.x
  • Redis: redis:7-alpine (também testado com redis:6-alpine)
  • PostgreSQL: postgres:15-alpine
  • Rede: Docker bridge network customizada

If applicable, paste the log output

Loop infinito de redis disconnected:

[Evolution API]    v2.3.6  317   -  Thu Nov 27 2025 21:16:17     VERBOSE   [CacheEngine]  [string]  RedisCache initialized for groups 
[Evolution API]    v2.3.6  317   -  Thu Nov 27 2025 21:16:17     VERBOSE   [CacheService]  [string]  cacheservice created using cache engine: ms 
[Evolution API]    v2.3.6  317   -  Thu Nov 27 2025 21:16:17     VERBOSE   [CacheEngine]  [string]  RedisCache initialized for instance 
[Evolution API]    v2.3.6  317   -  Thu Nov 27 2025 21:16:17     VERBOSE   [CacheService]  [string]  cacheservice created using cache engine: ms 
[Evolution API]    v2.3.6  317   -  Thu Nov 27 2025 21:16:17     VERBOSE   [CacheEngine]  [string]  RedisCache initialized for baileys 
[Evolution API]    v2.3.6  317   -  Thu Nov 27 2025 21:16:17     VERBOSE   [CacheService]  [string]  cacheservice created using cache engine: ms 
[Evolution API]    v2.3.6  317   -  Thu Nov 27 2025 21:16:17     INFO   [WA MODULE]  [string]  Module - ON 
[Evolution API]    v2.3.6  317   -  Thu Nov 27 2025 21:16:17     ERROR   [Redis]  [string]  redis disconnected 
[Evolution API]    v2.3.6  317   -  Thu Nov 27 2025 21:16:17     ERROR   [Redis]  [string]  redis disconnected 
[Evolution API]    v2.3.6  317   -  Thu Nov 27 2025 21:16:18     ERROR   [Redis]  [string]  redis disconnected 
(continua infinitamente...)

Logs do Redis (confirmando que está funcionando):

1:M 27 Nov 2025 23:04:56.454 * Running mode=standalone, port=6379.
1:M 27 Nov 2025 23:04:56.454 * Server initialized
1:M 27 Nov 2025 23:04:56.454 * Ready to accept connections tcp

Additional Notes

Contexto importante:

  1. Este bug parece ser específico da v2.3.6 (issue #2175 reporta o mesmo problema)
  2. O Redis está comprovadamente funcionando e acessível
  3. O bug persiste independentemente de:
    • Versão do Redis (7-alpine ou 6-alpine)
    • Uso de senha ou sem senha no Redis
    • Nome do host Redis (testado com redis, redis-evo, e container_name)
    • Ordem de inicialização dos containers (depends_on com healthcheck)
  4. Workaround confirmado: Desabilitar Redis completamente permite que a API funcione normalmente

Impacto:

  • ❌ Impossível usar Redis para cache em v2.3.6
  • ❌ Performance degradada sem cache Redis
  • ❌ Impossível escalar horizontalmente (múltiplas instâncias)
  • ✅ API funciona perfeitamente sem Redis (single-instance)

Sugestão: Investigar a implementação do cliente Redis na v2.3.6, especialmente no módulo CacheEngine. Parece haver um problema na inicialização ou configuração da conexão que não está presente em versões anteriores.

TrolljanO avatar Nov 28 '25 00:11 TrolljanO

pesquisei problemas semelhantes no GitHub e encontrei a issue #2175 com sintomas similares, mas sem solução definitiva.

TrolljanO avatar Nov 28 '25 00:11 TrolljanO

Tivemos esse erro e conseguimos arrumar, a gente atualizou as dependências e demos rebuild no container

MurilloDanielOfficial avatar Dec 08 '25 23:12 MurilloDanielOfficial