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

Erro ao tentar processar áudios ou imagens via Base64

Open Arenaz3 opened this issue 8 months ago • 10 comments

Bem-vido!

  • [x] Sim, pesquisei problemas semelhantes no GitHub e não encontrei nenhum.

O que você fez?

Estou utilizando a API POST /chat/getBase64FromMediaMessage/{instance} para converter mídias recebidas (áudio, imagem, documento) em Base64, via automação com o n8n.

O que você esperava?

Esperava que a API retornasse o conteúdo da mídia em Base64, conforme descrito na documentação, desde que a mensagem já tenha sido recebida e esteja armazenada.

O que vc observou ao invés do que esperava?

Ao testar a requisição com uma mensagem nova, a API funciona corretamente.

Quando tento enviar novamente a mesma requisição (mesmo message.key.id) — inclusive via botão “Test Step” do n8n — a API retorna: { "status": 400, "error": "Bad Request", "response": { "message": ["AggregateError"] } }

Capturas de Tela/Vídeos

SUCESS: Image

ERROR: Image

Qual versão da API você está usando?

Version: 2.2.3

Qual é o seu ambiente?

Docker

Outras expecificações do ambiente

n8n self-hosted

API pública usada via HTTP Request node

Mensagens recebidas por webhook da instância

Se aplicável, cole a saída do log

400 - "AggregateError" ao tentar recuperar a mídia de uma mensagem já processada anteriormente.

Notas Adicionais

Esse comportamento causa problemas em automações, já que a mídia parece ter uso único ou tempo limitado de acesso. Se esse for o comportamento esperado, poderia ser documentado melhor — ou a API retornar mensagem mais clara, como "message expired" ou "media already consumed".

Arenaz3 avatar Apr 25 '25 17:04 Arenaz3

Tive os mesmo problema, entre as 11:30 e 12:00

PVTois avatar Apr 25 '25 20:04 PVTois

Estou com o mesmo problema! O retorno é "AxiosError: Request failed with status code 403". Aparentemente um dia antes estava certo!

ViniSiqueira avatar Apr 26 '25 14:04 ViniSiqueira

Estou tendo o mesmo problema:

400 - {"status":400,"error":"Bad Request","response":{"message":["AggregateError"]}}

Ao reiniciar a instancia o erro para de acontecer (no mesmo request), mas dura por algumas horas. Depois passa a dar erro novamente. O mesmo erro.

Isso acontece tanto com get-image quanto com get-video

VRAutomatize avatar Apr 26 '25 17:04 VRAutomatize

Galera, alguma resolução?? Também com mesmo problema. Parece que geral está tendo esse erro.

leonardomarcao avatar Apr 26 '25 21:04 leonardomarcao

Estou com o mesmo problema!

FilippiAraujo avatar Apr 27 '25 04:04 FilippiAraujo

Por aqui ainda está com esse problema. Versão: 2.2.3

ricardozanga avatar May 03 '25 15:05 ricardozanga

Aqui ta indo e voltando.. tem dia que funciona, tem dia que para...

FilippiAraujo avatar May 03 '25 16:05 FilippiAraujo

same problem here

cookfinances avatar May 04 '25 18:05 cookfinances

@cookfinances check this issue: https://github.com/EvolutionAPI/evolution-api/issues/1402

a workaround was posted.

cleytoncoro avatar May 05 '25 11:05 cleytoncoro

Estou com o mesmo problema desde a semana passada versão 2.2.2

Moisesjr20 avatar May 05 '25 13:05 Moisesjr20

[CORREÇÃO - STATUS 400 PARA N8N]

Aqui estou usando a versão 2.2.2 e estava enfrentando o mesmo problema de status 400 ao tentar obter o áudio, consegui corrigir da seguinte forma:

Estou utilizando via HttpRequest endpoint --> [/chat/getBase64FromMediaMessage/]

No body tem o parâmetro ("convertToMp4": true) no meu caso estava solicitando para converter para mp4 e isso estava causando o erro, eu alterei para false, com isso passou a funcionar, mas fique atento ao detalhe abaixo.

Detalhe: Estou usando o n8n, e após esse Node de HttpRequest tenho um outro Node Convert To File, para converter o base64 para arquivo de áudio, nesse node fiz o ajuste para pegar o MimeType correto, pois no campo de MimeType sem a conversão para mp4, vem 2 parâmetros juntos, exemplo --> (MimeType = audio/ogg; codecs=opus) e se enviar dessa forma o Node ChatGpt Transcribe a Recording irá rejeitar o formato do arquivo.

Esse é o código caso alguém tenha dúvida, para pegar só a primeira parte do MimeType = audio/ogg {{ $json.mimetype.split(;)[0] }}

Espero que ajude a comunidade.

Um abraço e sucesso a todos.

alexgomesxg avatar Jun 02 '25 21:06 alexgomesxg