Instancia para de funcionar, apos inatividade "msg=failed to decrypt message"
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
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"}
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.
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.
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.
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.
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
CACHE_REDIS_ENABLED=false
ISSO PARECE QUE FUNCIONOU PRA MIM!
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_ERRORSeWEBHOOK_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.
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
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.
Acontecendo comigo também na 2.1.1
Aqui está acontecendo na 2.2.3
Pq isso está closed? Resolveram? Continua ocorrendo aqui....
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
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?
Mesmo erro v2.2.1
Mesmo erro por aqui
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.
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 ?