WhatsApp Trigger não recebe eventos & Conflito de inscrição no Webhook (n8n auto-hospedado)

Oi a todos,
Continuo enfrentando este problema e não consegui resolvê-lo.
Realizar testes adicionais:

  • Verifiquei credenciais OAuth.
  • Verifiquei HTTPS/SSL.
  • Testei a URL de Teste e a URL de Produção.
  • Publiquei o workflow.
  • Confirmei que o Meta recebe eventos webhook.
  • O workflow ainda falha com:
    “The WhatsApp App ID already has a webhook subscription.”
    Alguém já enfrentou isso antes ou pode sugerir como remover a inscrição webhook existente ou redefinir o WhatsApp Trigger?
    Qualquer ajuda seria muito apreciada.
    Obrigado.

Ambiente

  • Versão n8n: Versão self-hosted mais recente
  • Implantação: Docker
  • Provedor de Hospedagem: Hostinger VPS
  • Sistema Operacional: Ubuntu
  • Domínio: https://n8n-teep.srv1761962.hstgr.cloud
  • HTTPS/SSL: Ativado e funcionando
  • Integração WhatsApp: Meta WhatsApp Cloud API (OAuth)
  • Nó AI: OpenAI Chat Model

Descrição do Problema

Estou tentando construir um workflow simples de resposta automática de IA para WhatsApp.
Workflow:

WhatsApp Trigger
      ↓
AI Agent
      ↓
OpenAI Chat Model

O AI Agent nunca é executado porque o WhatsApp Trigger nunca recebe eventos de entrada.

O que Funciona

  • As credenciais OAuth do WhatsApp se conectam com sucesso.
  • O teste de conexão OAuth é bem-sucedido.
  • O domínio HTTPS está acessível.
  • O número de teste da Meta WhatsApp Cloud API funciona corretamente.
  • Consigo enviar mensagens de template com sucesso do Meta Developer Dashboard.
  • O Meta Developer Dashboard mostra eventos webhook de entrada em Check Test Webhooks.

O que NÃO Funciona

Quando clico em Execute Step no WhatsApp Trigger, ele entra em:

Listening for test event

Envio uma mensagem WhatsApp para o número de teste.
O trigger nunca recebe o evento e continua aguardando para sempre.
Nenhuma execução é criada.
O AI Agent nunca inicia.

Erro Adicional

Quando publico ou executo o workflow, recebo o seguinte erro:

The WhatsApp App ID already has a webhook subscription.
Delete it or use another App before executing the trigger.
Due to WhatsApp API limitations, you can have just one trigger per App.

O que Já Tentei

  • Recriei credenciais OAuth do WhatsApp.
  • Verifiquei que as credenciais OAuth são válidas.
  • Testei a URL de Teste e a URL de Produção.
  • Publiquei o workflow.
  • Verifiquei o certificado SSL.
  • Confirmei que o Meta recebe eventos webhook.
  • Reconstruir o workflow do zero.
  • Testei apenas com um nó WhatsApp Trigger.
  • Removi o AI Agent dos testes.
  • Verifiquei que o problema não está relacionado ao nó OpenAI.

Informações Adicionais

Tenho outra instância n8n self-hosted em execução em outro VPS Hostinger.
É possível que o mesmo Meta WhatsApp App tenha sido conectado anteriormente àquela instância.
Não tenho certeza se uma inscrição webhook antiga está impedindo que esta nova instância registre seu webhook.

Perguntas

  1. Como posso identificar qual webhook está registrado atualmente para meu WhatsApp App?
  2. Há uma maneira de remover ou substituir a inscrição webhook existente sem criar um novo Meta App?
  3. O WhatsApp Trigger cancela automaticamente webhooks antigos?
  4. Existe algum comando ou endpoint de API que eu possa usar para redefinir manualmente o registro webhook?
  5. Existem logs que devo verificar na minha instância n8n self-hosted para diagnosticar por que o registro webhook falha?

Comportamento Esperado

As mensagens WhatsApp recebidas devem ativar o workflow imediatamente.

Comportamento Real

O trigger permanece em “Listening for test event” para sempre, e publicar o workflow produz erro de conflito de inscrição webhook.
Qualquer orientação seria muito apreciada.
Obrigado.
Aqui estão os Detalhes completos:

@Hussain_Farooq esse erro é exato, o n8ns trigger verifica a assinatura de webhook existente do seu app e cancela quando seu callback_url não corresponde à url que esse trigger quer, e meta permite apenas um webhook por app. então meta está entregando seus eventos para aquele outro/antigo callback url, por isso o dashboard mostra eventos mas o trigger nunca os vê. correção: no seu painel de app meta vá para WhatsApp > Configuration e delete o callback de webhook existente (ou configure-o para a url exata mostrada no nó do trigger n8n), depois ative o workflow para que n8n registre sua url de produção e certifique-se de que o campo messages está inscrito. é um trigger por app, então se outro fluxo ou instância já registrou um callback lá esse é seu conflito.

Para ver exatamente o que está registrado, você deve usar o Meta Graph API Explorer ou curl. A inscrição acontece no nível da WhatsApp Business Account (WABA), não apenas no nível do App.

A Verificação: Execute uma requisição GET para o seguinte endpoint: https://graph.facebook.com/v21.0/{your-waba-id}/subscribed_apps (Substitua {your-waba-id} pelo ID da sua Conta de Negócios WhatsApp encontrado no Meta Business Settings).

Se a resposta contiver seu App ID, esse App está atualmente inscrito para receber eventos dessa conta, e é por isso que n8n está sendo bloqueado.

Para “limpar o caminho” da sua nova instância n8n, você precisa cancelar a inscrição do app na WABA.

A Solução via Graph API:

  1. Vá para o Meta Graph API Explorer.
  2. Selecione seu App e verifique se você tem um System User Token ou um Page Access Token com permissões de whatsapp_business_management.
  3. Altere o método para DELETE.
  4. Digite o endpoint: /{your-waba-id}/subscribed_apps
  5. Execute a requisição. Isso remove a inscrição do App na WABA e libera o “bloqueio”.

Não, não de forma confiável entre diferentes instâncias. Embora o nó tente atualizar o webhook quando você ativa um workflow na mesma instância, ele não pode saber sobre inscrições criadas por um servidor/VPS diferente. Quando você mudou para a nova VPS da Hostinger, a Meta API ainda lembrava da URL de callback da VPS antiga.

Se você preferir usar o terminal, pode usar estes comandos curl (substitua os placeholders):

Para verificar a inscrição atual:

curl -X GET "https://graph.facebook.com/v21.0/<WABA_ID>/subscribed_apps?access_token=<YOUR_TOKEN>"

Para remover a inscrição:

curl -X DELETE "https://graph.facebook.com/v21.0/<WABA_ID>/subscribed_apps?access_token=<YOUR_TOKEN>"

Se o erro persistir após a limpeza da API, verifique seus logs do Docker para ver a resposta exata bruta de erro da Meta:

docker logs -f <your-n8n-container-name>

Procure por entradas contendo whatsapp ou webhook registration. Se você ver um 400 Bad Request com um código de erro específico da Meta, isso confirmará se o problema é uma “inscrição duplicada” ou uma “falha de validação” (que acontece se sua variável de ambiente WEBHOOK_URL estiver incorreta).

Se você quer que isso funcione imediatamente, siga esta sequência exata:

  1. Limpar Meta: Execute a requisição DELETE em /{waba-id}/subscribed_apps conforme descrito acima.
  2. Limpar Estado Interno do n8n:
    • Abra seu workflow.
    • Delete o nó WhatsApp Trigger por completo.
    • Salve o workflow.
    • Atualize a página do navegador.
    • Re-adicione o nó WhatsApp Trigger do zero. (Isso força o n8n a esquecer qualquer ID de registro em cache).
  3. Verifique as Variáveis de Ambiente: Certifique-se de que sua variável de ambiente Docker WEBHOOK_URL é exatamente https://n8n-teep.srv1761962.hstgr.cloud.
  4. Publique: “Publique” o workflow primeiro, em vez de clicar em “Execute Step”. Ativar o workflow é a forma mais confiável para o n8n registrar a URL de Produção.