[BUG] Disparador de WhatsApp — “Bad request - please check your parameters” al iniciar, nunca entra en modo de escucha Entorno
Versión de n8n: 2.23.3
Instalación: npx n8n (Node.js, Windows)
SO: Windows 11
Túnel: ngrok (ngrok-free.app)
Nodo de WhatsApp: WhatsApp Trigger (nodo oficial de n8n, versión 1 más reciente)
Tipo de credencial: WhatsApp OAuth Descripción del problema
Cuando hago clic en “Test this trigger” en el nodo WhatsApp Trigger, el flujo de trabajo inmediatamente lanza el error “Bad request - please check your parameters” sin nunca entrar en modo de escucha (“Waiting for trigger event…”). El nodo nunca registra el webhook. Registros de terminal
Bad request - please check your parameters
Bad request - please check your parameters
Database connection timed out
Database connection recovered
Bad request - please check your parameters
Received request for unknown webhook: The requested webhook "26ac6c82-dd08-40c3-a624-5805b663b1ab/webhook" is not registered.
404 The requested webhook "26ac6c82-dd08-40c3-a624-5805b663b1ab/webhook" is not registered.
Bad request - please check your parameters
Lo que ya he intentado
Credenciales verificadas: la prueba de conexión OAuth de WhatsApp devuelve “Connection tested successfully”
Configuré la URL del webhook + Token de verificación en la consola de desarrolladores de Meta
Intenté hacer clic en “Test this trigger” antes de hacer clic en “Verify” en Meta
Reinicié n8n con npx n8n start
Confirmé que ngrok está en línea y reenviando a localhost:5678
Confirmé que n8n también expone su propio túnel ngrok en el mismo puerto (¿posible conflicto?) Causa sospechosa
Noté que n8n expone su propio túnel ngrok Y estaba ejecutando una instancia ngrok separada en el mismo puerto 5678 simultáneamente. ¿Podría este conflicto causar los problemas de “Bad request” y tiempo de espera de la base de datos? Pregunta
¿El “Bad request” es activado por n8n intentando registrar el webhook con Meta y fallando? Si es así, ¿qué exactamente envía n8n a Meta en ese momento y qué podría causar que Meta lo rechace?
¡Cualquier ayuda es apreciada, gracias! También se aceptan respuestas en francés
El error “Bad request” que estás viendo es en realidad un “apretón de manos” fallido entre n8n y Meta. Cuando pruebas el trigger, n8n le dice a Meta: “Por favor, envía mis mensajes a esta dirección web”. Meta inmediatamente intenta llamar a esa dirección para verificar que sea real. Si Meta no obtiene la respuesta exacta correcta al instante, rechaza la conexión, y n8n te muestra ese mensaje genérico “Bad request”.
Tus registros muestran que Meta está llegando a tu computadora, pero n8n rechaza la llamada como un “webhook desconocido”. Esto sucede porque n8n está confundido sobre su propia identidad. Aún no ha terminado de registrar el webhook, así que cuando Meta llama para verificarlo, n8n no reconoce la solicitud y cuelga a Meta, lo que causa que el registro falle.
La causa raíz es que tienes dos “túneles” diferentes (el integrado de n8n y tu ngrok manual) compitiendo por el mismo puerto. Es como tener dos puertas frontales diferentes para la misma casa; el sistema no sabe cuál usar. Este conflicto no solo está rompiendo la conexión de WhatsApp sino que también está causando los errores “database timeout” porque tu conexión de red se está volviendo inestable.
Para solucionarlo, necesitas simplificar tu configuración. Apaga el túnel integrado de n8n y usa solo tu enlace ngrok manual. Lo más importante es que debes decirle explícitamente a n8n exactamente cuál es esa dirección ngrok configurando una variable de entorno WEBHOOK_URL. Esto asegura que n8n le dé a Meta la dirección correcta y reconozca la llamada de verificación cuando llegue.
Según lo que describiste y los logs que compartiste, el problema no es el nodo WhatsApp Trigger en sí, sino cómo están configurados el webhook y los túneles alrededor de él.
La causa raíz más probable es la configuración de doble túnel: estás ejecutando tu propio ngrok en el puerto 5678 mientras que n8n también inicia su propio túnel en el mismo puerto, por lo que Meta no tiene una única URL HTTPS estable para comunicarse y el registro del webhook falla inmediatamente con „Bad request - please check your parameters
Oh, lo siento mucho, no funcionó. Después de ingresar el comando:
Elimina completamente el nodo WhatsApp Trigger de tu lienzo, guarda el flujo de trabajo.
Recarga tu pestaña y luego añade un nodo WhatsApp Trigger nuevo al lienzo.
Abre el nodo WhatsApp Trigger.
Asegúrate de que tus credenciales pasen la prueba de conexión.
No hagas clic en verificar en Meta todavía.
Haz clic en Test step o escucha un evento de prueba dentro de n8n primero. La interfaz debería girar limpiamente hacia un estado de espera porque no hay colisiones de red/puerto.
Mientras n8n está girando y escuchando activamente, envía un mensaje de prueba desde un número de teléfono real a tu número de WhatsApp Business, o pega manualmente la URL/Token proporcionada por n8n en el panel de Meta para completar el apretón de manos de validación.
Disculpa enormemente T-T, pero las soluciones proporcionadas por @nguyenthieutoan y @kjooleng deberían funcionar, mientras tanto buscaré más soluciones.
@Samuel_Kponzot una cosa que verificar: cuando ejecutas npx n8n start --tunnel, n8n genera una URL de túnel completamente nueva cada vez. Necesitas volver al Portal de Desarrolladores de Meta y actualizar la URL de callback allí con esta nueva URL - ya no coincidirá con tu antigua dirección de ngrok. Cuando n8n se inicia con el túnel, busca en la salida de la terminal la URL del túnel (algo como https://xxxx.hooks.n8n.cloud/) y pégala en el campo de callback del webhook de WhatsApp en Meta, luego haz clic en Verificar y Guardar. Si la URL en Meta aún apunta a tu antigua dirección de ngrok, Meta seguirá rechazando el handshake sin importar lo que n8n esté haciendo.
Bienvenido a la comunidad n8n @Samuel_Kponzot
por favor siempre mantén tu instancia en la versión estable actualizada, 2.23.4, verifica si la callback URL en Meta es exactamente la misma mostrada por el WhatsApp Trigger, Verify Token igual en n8n y en Meta y si la app Meta tiene el producto WhatsApp/Webhooks configurado y permisos correctos.
de acuerdo con la documentación, esto es error en los parámetros
Abre tu panel local de n8n (http://localhost:5678).
Abre tu workflow y busca tu nodo WhatsApp Trigger.
Como estableciste la variable de entorno, n8n ahora generará dinámicamente una URL de Webhook que espera comience con tu dirección ngrok en lugar de localhost.
Copia esta nueva URL de webhook https:// y el Verify Token del nodo.
Ve a tu panel de Meta App, luego a WhatsApp, luego a configuración.
Pega la nueva URL de webhook basada en ngrok y el token de verificación.
Haz clic en guardar y verificar, Meta enviará un ping de prueba, ngrok lo reenviará, n8n reconocerá su propia URL, y la verificación debería tener éxito.
@Samuel_Kponzot Para ser claro: el túnel de n8n (–tunnel) puede ser poco confiable en instalaciones locales autohospedadas y, como has señalado, no es oficialmente compatible con producción. El enfoque de ngrok va en la dirección correcta, pero hay algo más que considerar. Meta requiere un valor de desafío de confirmación específico en la respuesta a una solicitud GET a la URL de verificación del webhook. Si el ping de verificación de Meta intenta contactar tu URL de ngrok y n8n aún no está completamente en funcionamiento en ese momento, o si la variable de entorno WEBHOOK_URL no está configurada antes de n8n, el ping de verificación de Meta devolverá una solicitud incorrecta.
Además, las URLs de webhook de Meta pueden requerir que no haya una barra diagonal al final en ciertas configuraciones. Si continúas recibiendo solicitudes incorrectas, prueba de ambas formas con https://your-ngrok-url.ngrok-free.app/webhook/… así como con y sin la barra diagonal al final.
La parte del “túnel se mantiene en localhost” es la clave. El --tunnel integrado a veces no genera la URL de hooks.n8n.cloud de manera confiable, y aunque lo haga, Meta necesita el callback HTTPS públicamente accesible, así que el camino más limpio es ejecutar tu propio ngrok e indicarle a n8n explícitamente, que es lo que explica la respuesta anterior.
Lo que la gente pasa por alto: iniciar ngrok no es suficiente, tienes que establecer WEBHOOK_URL en la URL https de ngrok antes de iniciar n8n, de lo contrario n8n sigue construyendo URLs de callback en localhost y Meta las rechaza como Bad Request. Así que: ngrok http 5678, copia la URL https, establece WEBHOOK_URL en esa URL, luego inicia n8n, luego abre el WhatsApp Trigger y el callback que se muestra ahora debería ser la URL de ngrok, y ese es el que debes pegar en el portal de Meta.
Una trampa con ngrok gratuito: la URL cambia en cada reinicio, así que cada vez que reinicies tienes que actualizar WEBHOOK_URL y volver a pegar el callback en Meta, que es por qué esto es tedioso para cualquier cosa más allá de pruebas. Para algo en lo que un cliente depende, mover n8n a un host con un dominio real y HTTPS elimina completamente el juego del túnel. ¿Lo estás haciendo para pruebas, o necesita ejecutarse continuamente? Eso determina si ngrok está bien o si quieres un host adecuado.