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
- Abrir Sessoes/Canais
- Encontrar a sessao com problema (status CONNECTED mas sem msgs)
- Clicar no menu … da sessao
- Selecionar “Ressincronizar (fix decrypt)”
- Confirmar o dialogo (sessao ficara offline ~30s)
- 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-backendAguardar ~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):
- Sessoes → Clicar no icone de QR code da sessao
- 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