Ola!
O ponto principal: o n8n cria webhooks automaticamente quando você executa o workflow, e o ngrok pode gerar URLs repetidas ou reaproveitadas dependendo da sessão. Isso causa conflito.
Alguns cenários comuns que explicam isso:
– O webhook foi criado em outra tentativa e não foi removido
– Você está olhando no repositório errado (ou organização vs repositório pessoal)
– O webhook está configurado em nível de organização, não do repo
– O n8n criou o webhook, mas falhou antes de limpar
– O ngrok reutilizou a mesma URL de uma execução anterior
O que fazer na prática:
No GitHub, verifique:
- Settings → Webhooks do repositório
- Settings → Webhooks da organização (se houver)
Apague qualquer webhook com a URL do ngrok (mesmo que “pareça antigo”).
Reinicie tudo:
- Pare o container do Docker
- Gere uma nova URL no ngrok (não reutilize a antiga)
- Suba o n8n novamente
No n8n:
- Desative e reative o node do GitHub
- Execute o workflow novamente (isso força recriação do webhook)
Se ainda persistir, tem um detalhe mais sutil: o GitHub considera a URL completa (incluindo path). Se o n8n estiver gerando sempre o mesmo endpoint (ex: /webhook/github), o conflito continua mesmo com nova URL base.
Nesse caso, vale alterar o endpoint no node ou recriar o workflow do zero.
Se quiser, me manda como você configurou o node do GitHub no n8n (principalmente a parte do webhook) que eu te aponto exatamente onde está o conflito.