Troubleshooting: Sessao conectando/desconectando em loop

Sintoma

Sessao alterna entre CONNECTED e DISCONNECTED a cada 5-6 segundos. Backend mostra: stream errored out: conflict: replaced

Causa

Dois ou mais workers do cluster (dos 6) tentando autenticar o mesmo numero WhatsApp. Quando Worker A conecta, WhatsApp “desconecta” Worker B enviando conflict:replaced. Worker B tenta reconectar → Worker A recebe conflict → loop infinito.

Fix imediato

# Reload gradual do backend (um worker por vez, sem downtime total)
pm2 reload zpro-backend
# Aguardar 1-2 minutos para os workers se estabilizarem

Como isso aconteceu

Provavelmente por ter chamado o botao “Sincronizar Baileys” em sessoes CONNECTED. O botao foi corrigido para NUNCA chamar resetBaileysConnection em sessoes CONNECTED. Agora:

  • “Reconectar Baileys” (botao header) → so para DISCONNECTED/TIMEOUT
  • “Ressincronizar (fix decrypt)” (menu …) → por sessao, uma por vez, com confirmacao

Prevencao

  1. Nunca chamar resetBaileysConnection em multiplas sessoes simultaneamente
  2. Para sync de sessoes CONNECTED: usar menu … individual, uma por vez
  3. Delay minimo de 30s entre ressincronizacoes de sessoes diferentes