Subject: Facebook Messenger Webhook Verification Failing on n8n (Cloud & Self-Hosted), but Works Instantly on Make.com

Hi everyone,

I’m writing to report a persistent issue I’ve been facing with Facebook Messenger webhook verification. After extensive troubleshooting across multiple environments, I believe this might be a platform-level bug or limitation within n8n. My goal is to share my findings to help the n8n team investigate and improve our amazing platform.

The Problem in Detail
When I try to verify my webhook URL in the Facebook App Dashboard (Messenger > Settings > Webhooks), it consistently fails with the error:
The callback URL or verify token couldn’t be validated.

My n8n workflow is configured correctly for the verification process:

A Webhook node trigger, which correctly receives the GET request from Facebook.

An If node that successfully validates hub.mode === ‘subscribe’ and the hub.verify_token.

A Respond to Webhook node that is configured to respond with the plain text value of {{ $json.query.hub.challenge }}.

Crucially, the n8n execution log shows that this workflow runs successfully every single time Facebook attempts to verify. It receives the data, the ‘If’ condition passes, and the ‘Respond to Webhook’ node executes without any errors. Despite this, Facebook does not accept the verification.

Exhaustive Troubleshooting Steps Taken
To ensure this wasn’t a user error, I have tried every possible solution discussed in the forums and documentation, including:

Using the Production URL (not the Test URL).

Ensuring the workflow is saved and active.

Testing a simplified workflow (Webhook node → Respond to Webhook node) to rule out issues with the If node.

Explicitly setting the Content-Type header to text/plain in the Respond to Webhook node’s options.

Verifying all Facebook App permissions (pages_messaging) and settings are correct.

The Critical Test: Multiple n8n Environments vs. Make.com
The issue persisted across all n8n instances I tested:

n8n Cloud: Failed on a standard *.n8n.cloud instance.

Two different Self-Hosted instances: Failed on two separate servers with my own custom domains.

This rules out any specific issues with my personal server configuration, domains, or reverse proxies.

As a final control test, I used the exact same Facebook App and Page and set up a new webhook on Make.com.

The result was an instantaneous and successful verification on the very first try.

Conclusion and Hypothesis
Since the verification works perfectly with Make.com using the same Facebook App, it strongly suggests the problem is not with my Facebook settings but lies somewhere within the n8n platform.

My hypothesis is that this could be due to:

Response Latency: n8n’s response, while correct, might be taking a few milliseconds longer than Facebook’s strict timeout allows. Make.com’s infrastructure might be faster or geographically better positioned.

Infrastructure/Network Layer: A firewall, WAF, or other security layer on n8n’s end (both cloud and in the default self-hosted setup) might be subtly interfering with Facebook’s specific validation requests.

A Subtle Bug: A minor difference in how n8n constructs the final HTTP response (e.g., headers) compared to Make.com.

This seems to be an “edge case” bug that might be affecting users in certain regions or under specific network conditions.

Has anyone else experienced this? I hope this detailed report helps the n8n team investigate a potential underlying issue. I love this platform and am keen to help make it even better.

Thanks for your time and any insights you can provide.

Describe the problem/error/question

What is the error message (if any)?

Please share your workflow

(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)

Share the output returned by the last node

Information on your n8n setup

  • n8n version:
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):
  • Operating system: