Não consigo enviar mensagens usando o n8n
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
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:
Eu tambem estou com o mesmo problema. Alguem poderia ajudar por favor?
Mesmo problema
Mais uma para a lista, porém o meu está aparecendo esse erro aqui.
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
@sy-carolinne bad request é corpo da requisição ou metodo sendo usado errado
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...
@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.
Ainda está com o problema @Leandro-Dalla-Nora?
to com o mesmo problema descrito pelo autor do post
to com o mesmo problema descrito pelo autor do post
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.
Pessoal eu estou com o mesmo problema. Estou tentando fazer uma requisição da evolution api no n8n e estou com esse erro.
Será se alguém conseguiu resolver ? Ou sabe como resolver ?
, alguem sabe como resolver e sempre esse erro
@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.
estou com o mesmo problema, e ja tente de todas as sugestoes aqui
alguem saberia informar sobre esse erro?
Consigo integrar com a API, ela valida o TOKEN, consegue obter as instâncias, mas não consigo enviar mensagem de jeito nenhum!
É preciso expor a url local do n8n a rede utilizando o ngrok. Caso contrário, a url local não será valida
podem ver o passo a passo aqui: https://github.com/zaniniii/n8n-evoapi-ngrok
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!
@satellasoft deu certo, brigado!!