evolution-api
evolution-api copied to clipboard
Mensagens não são recebidas em conversas já iniciada depois de reiniciar (Versão 1.8.2)
Welcome!
- [X] Yes, I have searched for similar issues on GitHub and found none.
What did you do?
Depois de reiniciar o container do Evolution o recebimento das mensagens em conversas já iniciadas param de acontecer.
Sobre o problema que identifiquei ele pode ser reproduzido da seguinte maneira:
- Utilizando a versão 1.8.2
- Conectar um WhatsApp
- A partir de um cliente WhatsApp enviar uma mensagem para iniciar a conversa com um agente (número conectado no Evolution), neste momento a conversa irá funcionar 100%, sem problemas ou erros
- Reiniciar o Evolution (utilizamos container por aqui, por isso apenas reiniciamos o container)
- A partir deste momento, enquanto o agente do Chatwoot (número conectado) não enviar uma mensagem o cliente que iniciou a conversa não terá suas mensagens recebidas no Chatwoot
Importante mencionar que fizemos testes com e sem a marcação de "Forçar validação de identidade do usuário" na configuração da caixa no Chatwoot e o resultado foi o mesmo.
O problema acima consegue ser reproduzido facilmente com a versão 1.8.2, mas o erro não ocorre nas versões 1.8.0 e 1.8.1.
What did you expect?
É esperado que mesmo reiniciando o Evolution as mensagens sejam recebidas corretamente.
What did you observe instead of what you expected?
Depois do reinicio do Evolution as mensagens só são recebidas depois de pelo menos 1 mensagem ser enviada.
Screenshots/Videos
No response
Which version of the API are you using?
- Chatwoot: 3.11
- Evolution API: 1.8.2
What is your environment?
Linux
Other environment specifications
No response
If applicable, paste the log output
Com relação aos logs, existem alguns erros que ocorrem, mas o que mais me chamou a atenção foi esse:
{"type":"PreKeyError","message":"Invalid PreKey ID","stack":"PreKeyError: Invalid PreKey ID\n at SessionBuilder.initIncoming (/evolution/node_modules/libsignal/src/session_builder.js:66:19)\n at async 559999868994.0 [as awaitable] (/evolution/node_modules/libsignal/src/session_cipher.js:205:30)\n at async _asyncQueueExecutor (/evolution/node_modules/libsignal/src/queue_job.js:20:29)","name":"PreKeyError"} msg=failed to decrypt message
Aparentemente o erro está relacionado a lib do Baileys/LigSignal, e pesquisando por lá encontrei diversas pessoas com o mesmo erro (https://github.com/WhiskeySockets/Baileys/issues/54).
Notei que na versão 1.8.2 foi utilizado um fork da lib Baileys feito pela equipe do Evolution, e nela existem diversas modificações, será que alguma destas modificações pode ter impactado nesse bug?
E entendo que o contexto é complexo, pois na verdade algumas - ou todas - as modificações aplicadas no fork são na verdade do próprio Baileys que ainda não foi lançado!
Additional Notes
Parabéns pelo excelente trabalho realizado no projeto Evolution API! Já fui desenvolvedor e organizador de projetos de código aberto e conheço as dificuldades que este tipo de projeto enfrenta! Agradeço todo o trabalho realizado!
@dgcode-tec, possivelmente esse bug pode ter relação com as modificações realizadas no fork do Baileys.
Quando puder dê uma olhada. Obrigado.
Alguma maneira de solicionar esse problema?
Eu fiz o downgrade para a 1.8.1. Mas ela tem o problema de não trazer a foto da usuário do WhatsApp! Já existe a v2.1.0, mas ainda não é recomendada para produção.
eu consegui resolver aqui, na configuração da url do webhook, na configuração do canal no chatwoot a url estava com erro de digitação
errado: https://evolution.teste.com.br//chatwoot/webhook/CSM_whatsapp_suporte
certo: https://evolution.teste.com.br/chatwoot/webhook/CSM_whatsapp_suporte
estava com "//" após o dominio
Tem a ver com #791
Estarei fechando essa issue pelo fato da v1.8.2 não estar mais recebendo correções. Estaremos concentrados apenas nas versões da v2 mais atuais e todas as correções serão feitas em versões posteriores.