Gatilho do Gmail não está funcionando (na maioria das vezes)

Descreva o problema/erro/pergunta

Fluxo de trabalho com Gmail Trigger não funcionando e muito lento para publicar

Qual é a mensagem de erro (se houver)?

O Gmail Trigger não funciona de forma confiável. Consegui fazê-lo funcionar algumas vezes, mas na maioria das vezes ele simplesmente não reage a novas mensagens. No computador onde estou executando o n8n auto-hospedado, vejo os seguintes erros. Esta é uma máquina com conexões de saída muito limitadas, mas consegui fazê-la funcionar em algum momento, portanto não acho que esse deva ser o problema.

Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at AxiosError.from (/home/angelv-adm/.npm-global/lib/node_modules/n8n/node_modules/axios/dist/node/axios.cjs:1355:24)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at RedirectableRequest.handleRequestError (/home/angelv-adm/.npm-global/lib/node_modules/n8n/node_modules/axios/dist/node/axios.cjs:4026:25)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at RedirectableRequest.emit (node:events:520:35)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at ClientRequest.eventHandlers. (/home/angelv-adm/.npm-global/lib/node_modules/n8n/node_modules/follow-redirects/index.js:56:24)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at ClientRequest.emit (node:events:508:28)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at emitErrorEvent (node:_http_client:108:11)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at TLSSocket.socketErrorListener (node:_http_client:575:5)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at TLSSocket.emit (node:events:520:35)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at emitErrorNT (node:internal/streams/destroy:170:8)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at emitErrorCloseNT (node:internal/streams/destroy:129:3)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at Axios.request (/home/angelv-adm/.npm-global/lib/node_modules/n8n/node_modules/axios/dist/node/axios.cjs:5427:41)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at processTicksAndRejections (node:internal/process/task_queues:104:5)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at invokeAxios (/home/angelv-adm/.npm-global/lib/node_modules/n8n/node_modules/@n8n/backend-network/src/http/axios/invoke.ts:15:10)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at httpRequest (/home/angelv-adm/.npm-global/lib/node_modules/n8n/node_modules/@n8n/backend-network/src/http/axios/request.ts:211:5)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at Object.request (/home/angelv-adm/.npm-global/lib/node_modules/n8n/node_modules/@n8n/backend-network/src/http/outbound-http.ts:188:12)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at paginatedRequest (/home/angelv-adm/.npm-global/lib/node_modules/n8n/src/utils/strapi-utils.ts:87:15)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at getCommunityNodeTypes (/home/angelv-adm/.npm-global/lib/node_modules/n8n/src/modules/community-packages/community-node-types-utils.ts:54:9)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at CommunityNodeTypesService.fetchNodeTypes (/home/angelv-adm/.npm-global/lib/node_modules/n8n/src/modules/community-packages/community-node-types.service.ts:93:13)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at CommunityNodeTypesService.getCommunityNodeTypes (/home/angelv-adm/.npm-global/lib/node_modules/n8n/src/modules/community-packages/community-node-types.service.ts:213:4)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at CommunityNodeTypesController.getCommunityNodeTypes (/home/angelv-adm/.npm-global/lib/node_modules/n8n/src/modules/community-packages/community-node-types.controller.ts:18:10)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: read ECONNRESET
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: Error: read ECONNRESET
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: at TLSWrap.onStreamRead (node:internal/stream_base_commons:216:20)
Aug 01 10:20:33 orejon.ll.iac.es n8n[1375]: Error fetching from Strapi API (https://api-staging.n8n.io/api/community-nodes): read ECONNRESET
Aug 01 10:22:51 orejon.ll.iac.es n8n[1375]: There was a problem in ‘Gmail Trigger’ node in workflow ‘7’: ‘undefined’

Por favor, compartilhe seu fluxo de trabalho

Compartilhe a saída retornada pelo último nó

Informações sobre sua configuração n8n

  • Versão n8n: 2.32.5
  • Banco de dados (padrão: SQLite):
  • Configuração EXECUTIONS_PROCESS do n8n (padrão: own, main):
  • Executando n8n via (Docker, npm, n8n cloud, aplicativo desktop): npm
  • Sistema operacional: Linux Ubuntu 22.04

Oi @angelv
Esses rastreamentos ECONNRESET são o n8n buscando a lista de nós da comunidade de api-staging.n8n.io, não do Gmail. “undefined” na linha do Gmail Trigger significa que a chamada da pesquisa para o Google falhou no nível do soquete, então não havia corpo de resposta da API para extrair uma mensagem, e uma pesquisa com falha é ignorada sem tentativa de retorno, é por isso que minutos inteiros de e-mail nunca chegam. Abra o 443 de saída para www.googleapis.com e oauth2.googleapis.com desse host. Teste no próprio box:

curl -sS -o /dev/null -w '%{http_code}\n' https://www.googleapis.com/gmail/v1/users/me/profile

401 é o resultado saudável, significa que o host está acessível e apenas o token está faltando. Um erro de conexão ou um travamento significa que o filtro de saída está cortando.
Para a publicação lenta, isso impede que o n8n busque nós da comunidade a cada carregamento do editor:

N8N_COMMUNITY_PACKAGES_ENABLED=false

curl parece estar funcionando:

angelv-adm@orejon:~$ curl -sS -o /dev/null -w ‘%{http_code}\n’ https://www.googleapis.com/gmail/v1/users/me/profile
401

Estou iniciando n8n com estas variáveis definidas:

Environment=PATH=/home/angelv-adm/.npm-global/bin/:/usr/bin:/bin
Environment=GENERIC_TIMEZONE=Atlantic/Canary
Environment=NODES_EXCLUDE=“”
Environment=N8N_HOST=orejon.ll.iac.es
Environment=N8N_PROTOCOL=https
Environment=N8N_PORT=5678
Environment=N8N_EDITOR_BASE_URL=https://orejon.ll.iac.es/
Environment=WEBHOOK_URL=https://orejon.ll.iac.es/
Environment=N8N_PROXY_HOPS=1
Environment=N8N_DIAGNOSTICS_ENABLED=false
Environment=N8N_VERSION_NOTIFICATIONS_ENABLED=false
Environment=N8N_TEMPLATES_ENABLED=false
Environment=N8N_ONBOARDING_FLOW_DISABLED=true
Environment=N8N_LICENSE_AUTO_RENEW_ENABLED=false
Environment=N8N_DIAGNOSTICS_CONFIG_FRONTEND=
Environment=N8N_DIAGNOSTICS_CONFIG_BACKEND=
Environment=EXTERNAL_FRONTEND_HOOKS_URLS=

mas quando tento buscar um evento de teste, recebo um erro de timeout:

N8N_COMMUNITY_PACKAGES_ENABLED=false

Estou usando o nó "Execute Command", que entendo que falhará se eu definir isso?

Oi @angelv

Embora você tenha mencionado conexões de saída limitadas, o erro específico connect ETIMEDOUT 2001:4860:4840:400::443 revela que o n8n está tentando se conectar ao Google via IPv6, e sua rede/máquina não está configurada para IPv6 ou o firewall de saída está descartando pacotes IPv6.

Os erros ECONNRESET nos seus logs relacionados a api-staging.n8n.io confirmam ainda mais que sua máquina está tendo dificuldades com conexões TLS de saída estáveis para APIs externas.

Como sua máquina tem conectividade de saída limitada e está falhando em um endereço IPv6, você precisa forçar o Node.js (e assim o n8n) a preferir IPv4.

Adicione a seguinte variável de ambiente à sua configuração de inicialização do n8n (onde você define N8N_HOST, etc.):

Environment=NODE_OPTIONS=--dns-result-order=ipv4first

Se você está usando um arquivo de serviço systemd (o que parece ser o caso baseado nos seus trechos de Environment=):

  1. Edite o arquivo de serviço: sudo nano /etc/systemd/system/n8n.service (ou seu nome de arquivo específico).
  2. Adicione a linha: Environment=NODE_OPTIONS=--dns-result-order=ipv4first.
  3. Recarregue o systemd: sudo systemctl daemon-reload.
  4. Reinicie o n8n: sudo systemctl restart n8n.

Para confirmar que a correção está funcionando fora do n8n, execute este comando do seu terminal:

# Forçar curl IPv4 para a API do Google
curl -4 -v https://www.googleapis.com/gmail/v1/users/me/profile
  • Se isso retornar 401 (Não Autorizado): O caminho de rede está aberto (401 é esperado porque você não está passando um token).
  • Se isso ainda expirar: Seu firewall de saída está bloqueando a porta 443 para os intervalos de IP do Google completamente, e você deve solicitar ao administrador de rede que coloque na whitelist *.googleapis.com.

Para outros erros de log

  • Error fetching from Strapi API... ECONNRESET: Isso é o n8n tentando verificar atualizações de nós comunitários. Não está relacionado ao seu fluxo de trabalho do Gmail, mas confirma a instabilidade geral de suas conexões de saída. Você pode ignorar isso ou desabilitar verificações de nós comunitários se possível.
  • There was a problem in 'Gmail Trigger'... 'undefined': Este é um travamento genérico resultante do ETIMEDOUT mencionado em sua captura de tela. Após aplicar a correção IPv4, isso deve desaparecer.

Isso ajuda?

Não, aquele não está relacionado a Execute Command. N8N_COMMUNITY_PACKAGES_ENABLED apenas governa pacotes de nós da comunidade npm, aqueles instalados na página de configurações de nós da comunidade. Execute Command é um nó principal integrado e é controlado separadamente por NODES_EXCLUDE, que você já definiu como um array vazio, então ele continua carregando de qualquer forma.

Muito obrigado. Não sei quantas vezes já caí em problemas com IPv6 nessa rede, mas de alguma forma ainda não clica na minha cabeça…

Adicionei isso ao meu arquivo de serviço, reiniciei e imediatamente comecei a obter resultados

Environment=NODE_OPTIONS=–dns-result-order=ipv4first
Environment=N8N_COMMUNITY_PACKAGES_ENABLED=false

Muito obrigado!

O diagnóstico IPv4 parece estar correto — mas verifique ONDE você definiu NODE_OPTIONS. Se o n8n for executado sob systemd, exportá-lo no seu shell ou .bashrc nunca alcançará o serviço. Precisa estar como Environment=NODE_OPTIONS=–dns-result-order=ipv4first no arquivo da unidade (ou em um EnvironmentFile), depois systemctl daemon-reload e reiniciar.

Confirme se realmente foi aplicado em vez de apenas assumir: sudo strings /proc/$(pgrep -f n8n | head -1)/environ | grep NODE_OPTIONS. Se não aparecer nessa saída, a configuração nunca foi aplicada, e é por isso que nada mudou.