evolution-api icon indicating copy to clipboard operation
evolution-api copied to clipboard

Instancia para de funcionar, apos inatividade "msg=failed to decrypt message"

Open dersonbsb2022 opened this issue 1 year ago • 7 comments

Welcome!

  • [X] Yes, I have searched for similar issues on GitHub and found none.

What did you do?

A instancia de teste, após um tempo em inatividade, quando tento enviar uma mensagem novamente, aparece este erro conforme abaixo.

2024/08/17 09:49AM 50 pid=171 hostname=afd5368643c3 key={"remoteJid":"55XXXXXXXX:[email protected]","fromMe":false,"id":"3A9E433859AE8172CA4B"} err={"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 process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async 5561XXXXXXXX.42 [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

Pra voltar a funcionar, tenho que desconectar a instancia e ler o QR CODE novamente.

Uso ubuntu server 20.04 LTS Docker swarm EVO 2.0.10

What did you expect?

A instancia deveria funcionar, mesmo depois de horas sem nenhuma mensagem recebida.

What did you observe instead of what you expected?

Que ao desconectar a instancia, e LER o QRCODE novamente, a instancia volta a funcionar.

Screenshots/Videos

No response

Which version of the API are you using?

EVO 2.0.10

What is your environment?

Docker

Other environment specifications

No response

If applicable, paste the log output

No response

Additional Notes

No response

dersonbsb2022 avatar Aug 17 '24 13:08 dersonbsb2022

Estou enfrentando o mesmo problema.. loga um message rejected no meio do caminho e failed to decrypt message.

evolution_api  | [Evolution API]  [xxxx]  v1.8.2  1   -  Sat Sep 28 2024 20:43:52     VERBOSE   [ChannelStartupService]  [string]  Verifying if contacts exists in database to update
evolution_api  | [Evolution API]  [xxxx]  v1.8.2  1   -  Sat Sep 28 2024 20:43:52     VERBOSE   [ChannelStartupService]  [string]  message rejected
evolution_api  | [Evolution API]  [xxxx]  v1.8.2  1   -  Sat Sep 28 2024 20:43:52     VERBOSE   [ChannelStartupService]  [string]  Creating jid with number: [email protected]
....


....

evolution_api  | {"level":50,"time":1727567032754,"pid":1,"hostname":"43ab9cc39bb1","key":{"remoteJid":"55328xxxxxx:[email protected]","fromMe":false,"id":"3A56xEF8483D46"},"err":{"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 55328xxxx.33 [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"}

TiagoGouvea avatar Sep 28 '24 23:09 TiagoGouvea

Aqui está funcionando na v2.1.1, testa essas configs:

Ativar o cache local: CACHE_LOCAL_ENABLED=true

E desativar o redis: CACHE_REDIS_ENABLED=false

Depois dá um Deploy e faz a reconexão com a sua instância.

estevan-ulian avatar Sep 30 '24 12:09 estevan-ulian

Na 2.1.1 agora, estou obtendo o mesmo erro:

evolution_api | {"level":50,"time":1727719356374,"pid":163,"hostname":"8b3a7bc9890e","key":{"remoteJid":"55328xxx83:[email protected]","fromMe":false,"id":"3AC111A95A37C410E2DD"},"err":{"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 process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async 553288735683.33 [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"}

Mesmo desativando o cache a falha continua.

TiagoGouvea avatar Sep 30 '24 18:09 TiagoGouvea

Eu tive esse problema e foi bem complicado... minha suspeita é que de alguma maneira vc perdeu as chaves do WhatsApp que ficam em cache. Normalmente elas ficam dentro do Redis. Se por algum motivo vc perdeu essas chaves ela dá esse erro.

image

Importante mencionar que o Redis deveria ser para dados TEMPORÁRIOS, mas o Evolution na versão 2.x usa para dados importantes! Tanto que ele adiciona o dado no cache com TTL -1 para não expirar.

juliancesar avatar Sep 30 '24 18:09 juliancesar

Entendi. Pode ser, tinha desativado o cache.. estou mantendo ele ativo agora, resetei tudo e está ok. Vou observar se isso volta a acontecer.

Valeu pela informação @juliancesar

TiagoGouvea avatar Oct 01 '24 17:10 TiagoGouvea

CACHE_REDIS_ENABLED=false

ISSO PARECE QUE FUNCIONOU PRA MIM!

tassomuniz avatar Oct 02 '24 16:10 tassomuniz

Estou com o mesmo problema

  • Eu estou usando a minha instância na versão v1.8.2
  • Essa é minha env relacionada ao cache:
CACHE_REDIS_ENABLED=false
CACHE_LOCAL_ENABLED=false
  • Ele acontece com um contato em específico, e acontece somente as vezes
  • E o pior é que dai eu nem sei que o erro aconteceu, configurei as envs WEBHOOK_EVENTS_ERRORS e WEBHOOK_EVENTS_ERRORS_WEBHOOK, e esse erro não dispara o webhook 🫠

E no meu caso, é horrível de testar, porque não posso pedir para o contato que da problema ficar enviando mensagens para testar

{"level":50,"time":1728464816302,"pid":1,"hostname":"aa0155a72f45","key":{"remoteJid":"[email protected]","fromMe":false,"id":"5E21B468C0D00F330073"},"err":{"type":"SessionError","message":"No session record","stack":"SessionError: No session record\n    at 5511975686932.0 [as awaitable] (/evolution/node_modules/libsignal/src/session_cipher.js:169:23)\n    at async _asyncQueueExecutor (/evolution/node_modules/libsignal/src/queue_job.js:20:29)","name":"SessionError"},"msg":"failed to decrypt message"}

O erro acontece dentro do Baileys, e eu suspeito fortemente que o problema existe em função do fork desatualizado do Baileys, o exato mesmo problema já foi descrito nessa issue https://github.com/WhiskeySockets/Baileys/issues/936

Se alguém tiver alguma ideia de como replicar o problema e puder me falar, me dar um passo a passo, eu ficaria muito agradecido. Uma vez que eu entender como replicar o problema, eu pretendo fazer um patch pra resolver.

Mas sem saber como replicar o problema, não adianta eu tentar solucionar sendo que não sei como testar se a solução deu certo.

leomeneguzzi avatar Oct 10 '24 14:10 leomeneguzzi

Como mencionado acima, na versão da v2 do evolution é necessário usar o REDIS para cache, pois ele faz algumas operações internas que necessitam dele e sem ele algumas coisas não funcionarão corretamente. No caso da v1 não tem o que fazer já que essa versão não está recebendo novas correções, então te sugiro fortemente que faça uma nova instalação com uma versão do evolution mais recente @leomeneguzzi

dpaes avatar Dec 03 '24 20:12 dpaes

Mesmo a issue tendo sido fechada esse erro acontece ainda nas versões atuais. Chega a mensagem, o erro acontece e ela não é salva no banco de dados nem direcionada por webhook e demais eventos. O evolution simplesmente perde a mensagem recebida.

TiagoGouvea avatar Mar 29 '25 13:03 TiagoGouvea

Acontecendo comigo também na 2.1.1

eduardochaves1 avatar Apr 16 '25 15:04 eduardochaves1

Aqui está acontecendo na 2.2.3

coffeverton avatar Apr 17 '25 16:04 coffeverton

Pq isso está closed? Resolveram? Continua ocorrendo aqui....

leonardomarcao avatar Apr 26 '25 18:04 leonardomarcao

Falaram na issue #938 que na branch dev o problema foi resolvido, e que vai sair oficialmente na 2.2.4, mas não cheguei a testar ainda

eduardochaves1 avatar Apr 26 '25 19:04 eduardochaves1

Falaram na issue #938 que na branch dev o problema foi resolvido, e que vai sair oficialmente na 2.2.4, mas não cheguei a testar ainda

Previsão de lançamento p/ 2.2.4?

leonardomarcao avatar Apr 26 '25 19:04 leonardomarcao

Mesmo erro v2.2.1

TilsonM17 avatar Apr 28 '25 17:04 TilsonM17

Mesmo erro por aqui

ImPedro29 avatar May 06 '25 19:05 ImPedro29

Acabei de receber esse erro, infelizmente tive que desconectar TODAS as instancia e reconectar para o sistema receber novamente a chave de encriptar, mas realmente é um bug muito chato e complicado de resolver, praticamente não tem outra forma além de deslogar instancia por instancia até o log parar de mostrar o erro.

Uma dica aos amigos, ignorem GRUPOS, os grupos costumam abusar muito da evolution, sobrecarregam o sistema e podem gerar bugs devido a quantidade de dados e mensagens.

luccamrofc avatar May 16 '25 20:05 luccamrofc

Acabei de receber esse erro, infelizmente tive que desconectar TODAS as instancia e reconectar para o sistema receber novamente a chave de encriptar, mas realmente é um bug muito chato e complicado de resolver, praticamente não tem outra forma além de deslogar instancia por instancia até o log parar de mostrar o erro.

Uma dica aos amigos, ignorem GRUPOS, os grupos costumam abusar muito da evolution, sobrecarregam o sistema e podem gerar bugs devido a quantidade de dados e mensagens.

Do you think it is GROUPS what is causing this error ?

omarojo avatar May 31 '25 21:05 omarojo