Commit 8e7f348
committed
fix(baileys): prevent message loss from WhatsApp stub placeholders
Mensagens do WhatsApp estavam sendo perdidas e não eram salvas no banco de dados, especialmente mensagens de canais/newsletters (@lid) e mensagens com criptografia complexa.
O WhatsApp/Baileys envia mensagens criptografadas em duas etapas:
1. Primeiro: Envia um stub (placeholder) com messageStubParameters: ['Message absent from node'] enquanto descriptografa a mensagem
2. Depois: Envia a mensagem real com o conteúdo descriptografado
O problema ocorria porque:
- O stub chegava primeiro e era adicionado ao cache de mensagens duplicadas
- O stub era descartado (corretamente) por não ter conteúdo (!received?.message)
- A mensagem real chegava depois, mas era ignorada como duplicata porque o ID já estava no cache
- Resultado: mensagem nunca era salva no banco de dados
Solução:
- Detectar stubs do WhatsApp através de messageStubParameters contendo 'Message absent from node'
- Não adicionar stubs ao cache de mensagens duplicadas
- Permitir que a mensagem real seja processada quando chegar
- Manter o descarte do stub para evitar salvar placeholders vazios1 parent df20c5f commit 8e7f348
File tree
1 file changed
+2
-1
lines changed- src/api/integrations/channel/whatsapp
1 file changed
+2
-1
lines changedLines changed: 2 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
82 | 82 | | |
83 | 83 | | |
84 | 84 | | |
85 | | - | |
| 85 | + | |
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
| |||
1068 | 1068 | | |
1069 | 1069 | | |
1070 | 1070 | | |
| 1071 | + | |
1071 | 1072 | | |
1072 | 1073 | | |
1073 | 1074 | | |
| |||
0 commit comments