Chargement du webhook bloqué

Salut les gars,

Webhook Tester
n8n Ac1demy | N8N102 Webhook Assessment Tool

Quand je clique sur le lien pour ouvrir un deuxième onglet, j’écris l’ID d’évaluation et l’URL webhook de production, puis je clique sur « run » mais le chargement reste bloqué. Y a-t-il un moyen de corriger ça ?

Aussi, comment je peux corriger l’URL webhook ? C’est un tunnelling ngrok. Quand j’arrête le terminal, l’URL webhook ne revient pas à localhost:5678. J’ai aussi essayé d’éditer docker-compose, donc euhm t’as une idée ?

Deux choses se produisent probablement ici.

Le testeur s’exécute sur les serveurs de n8n, il ne peut donc accéder qu’à une URL publique. Une adresse localhost:5678 restera simplement bloquée avec le spinner de chargement. C’est pourquoi l’URL ngrok est nécessaire, et le workflow doit aussi être actif, car une URL de production (/webhook/…) ne répond pas quand le workflow est arrêté. L’URL de test (/webhook-test/…) ne répond qu’après que vous cliquiez sur Écouter l’événement de test.

Pour que l’URL ne revienne pas à localhost, n8n construit l’adresse webhook à partir de la variable d’environnement WEBHOOK_URL. Si vous la définissez sur votre adresse ngrok dans docker-compose.yml, ou si vous avez démarré n8n avec le flag --tunnel, elle continue à l’utiliser jusqu’à ce que vous la changiez et recréiez le conteneur. Éditer le fichier seul ne fait rien à un conteneur en cours d’exécution. Essayez ceci :

  1. Supprimez la ligne WEBHOOK_URL (ou définissez-la sur http://localhost:5678/) dans docker-compose.yml.
  2. Exécutez docker compose down, puis docker compose up -d.
  3. Ouvrez le workflow, désactivez-le et réactivez-le, puis réouvrez le nœud Webhook et vérifiez l’URL affichée.

Quand vous ferez l’évaluation à nouveau, démarrez d’abord ngrok, mettez son adresse https dans WEBHOOK_URL, recréez le conteneur, et collez l’URL de production du nœud dans le testeur.

J’ai écrit la version plus longue ici (mon propre site, divulgation) : n8n WEBHOOK_URL and N8N_WEBHOOK_URL: Fix Localhost Webhooks

Quand votre tunnel ngrok s’arrête mais n8n continue de servir l’URL externe, c’est généralement parce que la variable d’environnement WEBHOOK_URL est statiquement intégrée dans votre configuration de conteneur Docker plutôt que d’être lue dynamiquement. Mettre à jour cette variable dans votre fichier docker-compose et redémarrer complètement le conteneur forcera n8n à revenir vers votre port local. Faites-moi savoir à quoi ressemble votre bloc de variable d’environnement actuel et je peux vous coller le snippet docker-compose corrigé ici même.

Le testeur qui tourne indéfiniment signifie généralement que la requête n’atteint jamais n8n. L’URL de production ne répond que lorsque le workflow est actif, et le tunnel ngrok doit être opérationnel pendant le test, car le testeur ne peut pas accéder à localhost:5678 sur votre machine. Gardez l’inspecteur ngrok ouvert sur http://localhost:4040 pendant que vous cliquez sur « Exécuter ». Si rien n’apparaît là, c’est le tunnel ou l’URL que vous avez collée.

L’URL du webhook que n8n affiche provient de la variable d’environnement WEBHOOK_URL. Supprimez-la ou réglez-la sur http://localhost:5678/ dans docker-compose.yml, puis exécutez docker compose up -d. Un simple docker compose restart conserve l’ancien environnement, c’est pourquoi l’édition du fichier semblait ne rien faire.

Je n’ai pas passé l’évaluation N8N102, je ne peux donc pas vous dire quelle réponse elle attend une fois que la requête arrive.

hmm je viens de faire l’édition de docker-compose.yml webhookurl: https://localhost5678/

et j’ai mis à jour le fichier, j’ai démarré docker puis je suis allé au nœud de workflow déjà défini, j’ai activé la clé publique verte et activé le testeur de webhook, j’ai saisi l’assessment id et l’url du webhook, j’ai cliqué sur exécuter l’étape 1 mais ça n’a pas fonctionné correctement, ça a échoué et dit :

**
Validation échouée**

Veuillez corriger les erreurs suivantes :

  • webhook_url n’est pas valide. Veuillez vous assurer que votre nom d’hôte se résout et est accessible publiquement. Code de statut : undefined

c’est le fichier docker-compose.yml :
environment:

  • N8N_WEBHOOK_URL=https://localhost:5678/
  • Location
  • GENERIC_TIMEZONE=Fuseau horaire
  • N8N_HOST=nom url ngrok
  • N8N_PROTOCOL=https
  • N8N_PROXY_HOPS=1

on dirait que j’suis toujours bloqué hmm qu’est-ce que je suis censé faire ?