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

Não consigo enviar mensagens usando o n8n

Open ldnora opened this issue 1 year ago • 1 comments

Bem-vido!

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

O que você fez?

Eu fiz um http request para enviar uma mensagem do n8n, usando a Evolution API, em que ambos estão rodando em um docker container, usando o seguinte curl:

curl --request POST \\n --url http://localhost:8080/message/sendText/MVP_chatbot \\n --header 'Content-Type: application/json' \\n --header 'apikey: xxxxxxxxxxxx' \\n --data '{\n "number": "xxxxxxxxxxxx",\n "textMessage": {\n "text": "teste"\n }\n}'

O que você esperava?

Buenas!

Eu esperava que a mensagem fosse enviada

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

Eu obtive o seguinte erro: "The service refused the connection - perhaps it is offline", porém a Evolution API está rodando corretamente.

Capturas de Tela/Vídeos

image image image

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

v2.0.9-rc

Qual é o seu ambiente?

Docker

Outras expecificações do ambiente

No response

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

{ "errorMessage": "The service refused the connection - perhaps it is offline", "errorDetails": { "rawErrorMessage": [ "connect ECONNREFUSED 127.0.0.1:8080", "connect ECONNREFUSED 127.0.0.1:8080" ], "httpCode": "ECONNREFUSED" }, "n8nDetails": { "nodeName": "HTTP Request - send message", "nodeType": "n8n-nodes-base.httpRequest", "nodeVersion": 4.2, "itemIndex": 0, "time": "12/08/2024, 22:50:14", "n8nVersion": "1.53.2 (Self Hosted)", "binaryDataMode": "default", "stackTrace": [ "NodeApiError: The service refused the connection - perhaps it is offline", " at Object.execute (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/HttpRequest/V3/HttpRequestV3.node.js:1650:33)", " at processTicksAndRejections (node:internal/process/task_queues:95:5)", " at Workflow.runNode (/usr/local/lib/node_modules/n8n/node_modules/n8n-workflow/dist/Workflow.js:728:19)", " at /usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/WorkflowExecute.js:673:51", " at /usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/WorkflowExecute.js:1086:20" ] } }

Item Index 0 Node type n8n-nodes-base.httpRequest Node version 4.2 (Latest) n8n version 1.53.2 (Self Hosted) Time 12/08/2024, 22:50:14 Stack trace NodeApiError: The service refused the connection - perhaps it is offline at Object.execute (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/HttpRequest/V3/HttpRequestV3.node.js:1650:33) at processTicksAndRejections (node:internal/process/task_queues:95:5) at Workflow.runNode (/usr/local/lib/node_modules/n8n/node_modules/n8n-workflow/dist/Workflow.js:728:19) at /usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/WorkflowExecute.js:673:51 at /usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/WorkflowExecute.js:1086:20

Notas Adicionais

  • Quando o container da Evoluiton API estava de pé, eu consegui enviar mensagens do meu terminal, o que indica que a API está funcionando corretamente, mas não consegui enviar com o n8n. Eu testei o n8n tanto em um container, quanto no servidor do n8n e não consegui enviar nenhuma mensagem
  • Eu estou usando o compose fornecido na documentação tanto da Evolution, quando do n8n. A única alteração que fiz foi criar uma rede interna entre os dois containers
  • Não tenho firewall na minha rede, nem em minha máquina
  • Ao realizar esse http request, não aparece nenhum log de erro de que o n8n não consiga acessar o container da Evo
  • Não há conflitos na porta 8080

Dese já, quero agradecer pela ajuda, por todo o desenvolvimento deste trabalho, pela dedicação de cada um dos membros :smile:

ldnora avatar Aug 12 '24 23:08 ldnora

Eu tambem estou com o mesmo problema. Alguem poderia ajudar por favor?

imarkes avatar Sep 06 '24 13:09 imarkes

Mesmo problema

georgeallan avatar Nov 17 '24 19:11 georgeallan

Mais uma para a lista, porém o meu está aparecendo esse erro aqui. image

sy-carolinne avatar Nov 20 '24 00:11 sy-carolinne

Certo, pelo que percebi nos prints do autor @Leandro-Dalla-Nora ele está tentando em localhost, no qual se o seu evolution ou o n8n está em localhost, não tem como um conhecer o outro pelo fato de não estarem expostos na rede, a não ser que vc tenha feito um tunnel com ngrok ou algo do genero pra expor seu localhost na web com um dominio, porém segundo seu print ou você não expos ou não configurou no n8n corretamente para funcionar. Então recomendo que veja a config do seu n8n que deve ser aonde está o problema

dpaes avatar Nov 28 '24 17:11 dpaes

@sy-carolinne bad request é corpo da requisição ou metodo sendo usado errado

dpaes avatar Nov 28 '24 17:11 dpaes

Consegui solucionar colocando o Body Content Type para Json .

Estava utilizando os campos e nesse formato estava dando o erro acima. Depois de trocar para Json, deu certo e está indo do jeito que queria com as formatações de negrito, emotion...

Screenshot_7

sy-carolinne avatar Nov 28 '24 17:11 sy-carolinne

@dpaes o erro estava dando pelo formatado que estava colocando na parte do texto, e estava usando o método de campo e ele não reconhecia a formatação.

Depois que troquei para Json, rodou bonito.

Screenshot_8

sy-carolinne avatar Nov 28 '24 17:11 sy-carolinne

Ainda está com o problema @Leandro-Dalla-Nora?

dpaes avatar Nov 28 '24 17:11 dpaes

to com o mesmo problema descrito pelo autor do post

Mesheo avatar Dec 17 '24 21:12 Mesheo

to com o mesmo problema descrito pelo autor do post

allexerckmann avatar Feb 10 '25 21:02 allexerckmann

Verifique se o serviço que está tentando acessar está fora do container, em caso positivo, ou invés de usar localhost, utilize o IP do seu PC com a porta, exemplo: http://192.168.3.50:1111.

Você também pode testar com o http://host.docker.internal:1111.

Alguns serviços requer o header de agente, max-age, crossorigin...verifique o servidor de destino.

satellasoft avatar Mar 02 '25 00:03 satellasoft

Pessoal eu estou com o mesmo problema. Estou tentando fazer uma requisição da evolution api no n8n e estou com esse erro. FB_IMG_1743854888522.jpg

FB_IMG_1743854899066.jpg

FB_IMG_1743854904285.jpg

FB_IMG_1743854910424.jpg

Será se alguém conseguiu resolver ? Ou sabe como resolver ?

elioenaiancelmo avatar Apr 05 '25 12:04 elioenaiancelmo

Image , alguem sabe como resolver e sempre esse erro

JOESTAR117 avatar Jun 18 '25 19:06 JOESTAR117

@JOESTAR117 , verifica nas sua configuração de credencial do Evolution, e remove da url a parte "/manager". Vc tem que conseguir cadastrar apenas com a url base.

henriquemanduca avatar Jun 20 '25 03:06 henriquemanduca

estou com o mesmo problema, e ja tente de todas as sugestoes aqui

KelvesPires avatar Jun 20 '25 11:06 KelvesPires

alguem saberia informar sobre esse erro?

Image

Image

Consigo integrar com a API, ela valida o TOKEN, consegue obter as instâncias, mas não consigo enviar mensagem de jeito nenhum!

Image

algsavi avatar Jun 21 '25 10:06 algsavi

É preciso expor a url local do n8n a rede utilizando o ngrok. Caso contrário, a url local não será valida

frcdouglas avatar Aug 18 '25 00:08 frcdouglas

podem ver o passo a passo aqui: https://github.com/zaniniii/n8n-evoapi-ngrok

frcdouglas avatar Aug 18 '25 00:08 frcdouglas

Uma outra sugestão para causa do erro 500 Internal Server Error: Connection Closed (e o contêiner estar com exited - code 1) é que o servidor da Evolution API está ficando sem memória RAM (JavaScript heap out of memory).

Como a Evolution API roda em Node.js, precisamos aumentar o limite de memória alocado para esse processo.

🛠️ A Solução é no docker-compose.yml A maneira correta de corrigir isso é editando o arquivo de configuração do Docker (docker-compose.yml ou o arquivo de stack que você usa no Portainer).

Você precisa adicionar o parâmetro NODE_OPTIONS na seção de variáveis de ambiente (environment) do serviço da Evolution API.

Passo 1: Localizar e Editar o Arquivo Acesse o Portainer.

Vá para Stacks (Pilha) ou Containers (Contêineres) e encontre o serviço da Evolution API.

Edite o arquivo docker-compose.yml (se estiver no Portainer, geralmente clicando em "Editor" ou "Editar").

Passo 2: Inserir a Configuração de Memória Procure a seção do serviço Evolution API (pode estar como evolution_api, api, ou o nome que você deu) e adicione (ou edite) a seção environment com o parâmetro --max-old-space-size.

Exemplo de Como Deve Ficar:

YAML

services:

Nome do seu serviço principal da Evolution API

evolution_api: image: evoapicloud/evolution-api:latest # ... outras configurações environment: # Aumenta o limite de memória HEAP para 4096 MB (4 GB). # Ajuste este valor se o servidor tiver menos RAM. - NODE_OPTIONS=--max-old-space-size=4096 # ... outras configurações Passo 3: Aplicar e Reiniciar Salve as alterações no docker-compose.yml.

Redeploy: Faça o Redeploy (ou recriação forçada) da sua Stack/Pilha no Portainer. Isso forçará o Docker a recriar o contêiner, mas desta vez, com o novo limite de memória.

⚠️ Atenção O valor 4096 (4GB) deve ser menor que a RAM total do seu servidor. Se o servidor só tem 2GB de RAM, use um valor como 1536 ou 2048.

Após o redeploy, verifique se os contêineres da Evolution API voltaram a ficar no estado running.

Se isso não funcionar, o servidor realmente não tem RAM suficiente, e o único jeito é fazer um upgrade no VPS!

JhonesSena avatar Nov 04 '25 13:11 JhonesSena

@satellasoft deu certo, brigado!!

AleDias avatar Nov 18 '25 12:11 AleDias