Lost in whatsapp trigger "response does not match challenge"

Describe the problem/error/question

Starting with the Building Your First WhatsApp Chatbot | n8n workflow template workflow, I configured the WhatsApp OAuth account and WhatsApp account and the creds looks successfully tested.
As I try to activate the workflow the webhook verification process fail. I am surely missing a small piece of configuration somewhere.

I have n8n locally as container and n8n is exposing the webhook via tailscale funnel, something like https://tailscale/path/webhook/c9a5ef6f-b043-457a-a1a1-2aa285b369cf/webhook. For clarity I have another telegram triggered workflow running, based on similar webhook mechanism.

Other than obtaining the secrets etc. to configure the n8n credentials I did not see (or missed) anything else on the docs.

Activation fails with:
Workflow could not be activated: (#2201*) response does not match challenge, expected value=“128917154”, received="{\“message\”:\“Webhoo…”*

The error in the screenshot correspond to the challenge passed in the request (I see it in my tailscale + nginx stack) coming from Meta to my n8n environment :
[01/Oct/2025:10:53:37 +0000] "GET /<omitted>/webhook/c9a5ef6f-b043-457a-a1a1-2aa285b369cf/webhook?hub.mode=subscribe&hub.challenge=128917154&hub.verify_token=<omitted> HTTP/1.1" 200 35 "-" "facebookplatform/1.0 (+http://developers.facebook.com)"

For completeness, the request I see from MEta is to the production url of the trigger.

Is there anything else I should configure on the Meta side? Or in n8n?

What is the error message (if any)?

Workflow could not be activated: (#2201*) response does not match challenge, expected value=“128917154”, received="{\“message\”:\“Webhoo…”*

Please share your workflow

it is the https://n8n.io/workflows/2465-building-your-first-whatsapp-chatbot/

Share the output returned by the last node

Information on your n8n setup

  • n8n version:1.112.6
  • Database (default: SQLite):sqlite
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):docker, webhooks exposed via tailscale funnel
  • Operating system:Ubuntu host

Solved it, I post the solution as it might be useful to others: I messed up the nginx rule that is processing requests, via tailscale and nginx, to n8n: I dropped the query string!!!

I understood the issue by adding a MITM mitmproxy - an interactive HTTPS proxy to my tailscale + nginx stack to inspect what is being requested by meta to n8n and responded back.
I found out that a request to http://<tailscale + path>/webhook/c9a5ef6f-b043-457a-a1a1-2aa285b369cf/webhook?hub.mode=subscribe&hub.challenge=251761746&hub.verify_token= was being forwarded back as http:///webhook/c9a5ef6f-b043-457a-a1a1-2aa285b369cf/webhook which received a plain { “message”: “Webhook call received” } instead of the challenge itself.
The whole query hub.mode=subscribe&hub.challenge=251761746&hub.verify_token= was missing :person_facepalming: as my nginx config dropped it!!! The Telegram webhook did not pass any query parameters so I did not notice I misconfigured the nginx rule.

In this early stage of exploring local n8n I am enjoying the ability to inspect webhook interactions.

location ~ ^/n8n/webhooks/(.*)$ {
      # INSPECTION MODE → forward to mitmproxy listener
      proxy_pass http://<mitm local ip>/$1$is_args$args;
  
      # ORIGINAL (disable this line when inspecting)
      # proxy_pass http://<n8n internal ip>:5678/$1$is_args$args; 

Everything is fine now, WhatsApp trigger properly configured, workflow activated and requests flowing.

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.