EvolutionAPI / evolution-api

Evolution API is an open-source WhatsApp integration API
https://evolution-api.com
Other
1.91k stars 1.05k forks source link

Mensagens não são recebidas em conversas já iniciada depois de reiniciar (Versão 1.8.2) #727

Open juliancesar opened 3 months ago

juliancesar commented 3 months ago

Welcome!

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:

  1. Utilizando a versão 1.8.2
  2. Conectar um WhatsApp
  3. 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
  4. Reiniciar o Evolution (utilizamos container por aqui, por isso apenas reiniciamos o container)
  5. 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?

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!

juliancesar commented 3 months ago

@dgcode-tec, possivelmente esse bug pode ter relação com as modificações realizadas no fork do Baileys.

Quando puder dê uma olhada. Obrigado.

wbecher commented 2 months ago

Alguma maneira de solicionar esse problema?

juliancesar commented 2 months ago

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.

devloadingbr commented 1 month ago

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

TiagoGouvea commented 1 month ago

Tem a ver com #791