@Federico_Gentile ese 404 significa que un GET realmente llegó al nodo aunque esté configurado para POST, así que algo está cambiando el método, no la configuración del nodo.
Dos causas usuales con ngrok:
Probar abriendo la URL en un navegador. La barra de direcciones siempre envía GET. Un POST tiene que venir de curl/Postman o Telegram.
Un redireccionamiento que degrada el método. Si llamas a la URL http:// de ngrok (o golpeas un redireccionamiento de barra diagonal final), el 301/302 a https convierte tu POST en GET. Usa la URL https de ngrok directamente, y establece WEBHOOK_URL=https://tu-dominio-ngrok para que n8n emita https.
¿Cómo estás enviando la solicitud fallida: navegador, curl o Telegram setWebhook?
Muchas gracias por tu respuesta. Hasta ahora estoy enviando la solicitud a través de la barra de búsqueda del navegador, así que eso podría ser la razón. Si quiero probarlo correctamente, ¿qué me recomendarías utilizar entonces?
@Federico_Gentile sí, exacto, la barra de búsqueda envía un GET, así que siempre incidirá en ese error.
Para probar, envía un POST real. Lo más rápido es con curl:
curl -X POST -H "Content-Type: application/json" -d '{"hello":"world"}' https://your-ngrok-domain/webhook-test/9390c7f6-894b-4948-9579-8d9ec556dc7b
Una trampa con la URL de prueba: haz clic en “Listen for test event” primero, solo captura una única solicitud mientras está escuchando activamente. Postman también funciona, solo establece el método en POST.
Para la configuración real de Telegram, cambia a la URL de producción, activa el flujo de trabajo y luego apunta el setWebhook de Telegram a esa URL https. Telegram envía actualizaciones como POST, así que se comportará igual que tu disparador de Telegram ya lo hace.
El error está ocurriendo porque Telegram está intentando acceder a tu URL de webhook con una solicitud GET, mientras que tu nodo Webhook de n8n está configurado para aceptar solo solicitudes POST.
Algunos puntos a verificar:
Asegúrate de usar la URL de Producción (o la URL de Prueba activa mientras estés escuchando) de n8n y no abrir la URL directamente en un navegador. Los navegadores envían solicitudes GET por defecto.
Verifica que el webhook de Telegram esté registrado correctamente:
En n8n, haz clic en “Escuchar evento de prueba” si usas la URL de Prueba. Los webhooks de prueba solo funcionan mientras el flujo de trabajo está escuchando activamente.
Confirma que la ruta del Telegram Bot Trigger/Webhook coincida exactamente con la ruta configurada en n8n y que ngrok esté reenviando las solicitudes al puerto correcto de n8n.
Si visitas manualmente la URL del webhook en un navegador y ves:
{
"code": 404,
"message": "This webhook is not registered for GET requests. Did you mean to make a POST request?"
}
eso es en realidad el comportamiento esperado porque el punto de conexión solo acepta solicitudes POST.