Troubleshooting: Mensagens nao chegam no CRM

Sintomas

  • Canal mostra CONNECTED na pagina de Sessoes
  • Mensagens chegam no celular do cliente
  • Mensagens NAO aparecem no CRM

Diagnostico

pm2 logs zpro-backend --lines 50 --nostream 2>&1 | grep -i "PreKeyError\|failed to decrypt\|conflict.*replaced"

Se aparecer PreKeyError: Invalid PreKey ID ou failed to decrypt message: → Estado Signal Protocol corrompido. Ver Solucao A.

Se aparecer conflict: replaced: → Multiplos workers tentando autenticar o mesmo numero. Ver Solucao B.

Solucao A: Ressincronizar sessao individual

  1. Abrir Sessoes/Canais
  2. Encontrar a sessao com problema (status CONNECTED mas sem msgs)
  3. Clicar no menu da sessao
  4. Selecionar “Ressincronizar (fix decrypt)”
  5. Confirmar o dialogo (sessao ficara offline ~30s)
  6. Aguardar reconexao automatica

Isso chama POST /whatsapp/${id}/reset-baileys que:

  • Limpa o BaileysSessions no banco
  • Forca reautenticacao com novas chaves Signal

Solucao B: Loop conflict replaced

CAUSA: Alguem chamou resetBaileys em varias sessoes CONNECTED simultaneamente. Com 6 workers, cada um tenta autenticar o mesmo numero → WhatsApp manda “conflict: replaced”.

# Parar o loop via reload gradual do backend
pm2 reload zpro-backend

Aguardar ~2 minutos. Os conflitos param sozinhos quando cada worker determina qual sessao e “sua”.

Solucao C: Sessao precisa de novo QR code

Se a sessao ficou desautenticada (WhatsApp deslogou):

  1. Sessoes → Clicar no icone de QR code da sessao
  2. Escanear com o celular

O que NAO fazer

  • NAO clicar “Sincronizar Baileys” quando as sessoes estao CONNECTED — so para DISCONNECTED/TIMEOUT
  • NAO chamar resetBaileysConnection em multiplas sessoes simultaneamente
  • NAO fazer pm2 restart em horario comercial

Arvore de decisao

Msgs nao chegam?
  ↓
Canal CONNECTED?
  ├── SIM → ver logs: PreKeyError?
  │           ├── SIM → Solucao A (Ressincronizar)
  │           └── NAO → conflict replaced? → Solucao B
  └── NAO → canal DISCONNECTED/TIMEOUT
             ↓
             Botao "Reconectar Baileys" (header Sessoes)
             ou menu ... → Reconectar