Webhook Production URL returns timeout (Cloudflare 524) – unable to validate Meta webhook

Message:

Hi,

I’m trying to set up a webhook in n8n Cloud for Meta (Instagram/Facebook) webhook verification, but I’m encountering an issue.

I created a minimal workflow with only a Webhook node configured as:

  • Method: GET

  • Path: meta-verify-final

  • Respond: Immediately

  • Response Data:

{{$json.query["hub.challenge"]}}

The workflow is Published (active).

However, when I test the Production URL in the browser:

https://<my-instance>.app.n8n.cloud/webhook/meta-verify-final?hub.challenge=123&hub.mode=subscribe&hub.verify_token=test123

I consistently receive a Cloudflare 524 timeout, meaning the request reaches Cloudflare but the n8n host does not respond.

Because of this:

  • The endpoint does not return the expected 123

  • Meta cannot validate the webhook callback URL

I also tried:

  • Creating new workflows with different paths

  • Toggling the workflow OFF → ON (republish)

  • Using a minimal setup (only Webhook node, no additional nodes)

  • Testing from different browsers

The issue persists, so it seems the webhook endpoint is not responding in production.

Could you please advise:

  • Why the production webhook URL times out?

  • If there might be an issue with the n8n Cloud instance or routing?

  • Or if any additional configuration is required for public webhook access?

Thanks in advance!

welcome to the n8n community @roberto_rob
The docs mention that Cloud webhooks fail with 524 if they don’t respond within 100 seconds. I’d still double-check the response setup against the docs for returning a plain string response, but since you already reduced it to a minimal workflow and the timeout persists, I’d raise this as a likely n8n Cloud instance / routing issue and ask the team to check or restart the environment.

This looks more like a response-mode issue first, and a Cloud workspace issue second.

For Meta verification in n8n, I would not use Respond: Immediately. The documented working pattern is: Webhook (GET)Respond to Webhook, with Respond With: Text and body {{ $json.query['hub.challenge'] }}. I’d also force Content-Type: text/plain so Meta gets the raw challenge value, not JSON/HTML.

If that exact minimal setup still returns 524 on the production URL, then it’s no longer a Meta verification-format problem. A 524 means Cloudflare reached the origin, but the n8n Cloud workspace didn’t answer in time, so this points to an n8n Cloud instance/routing issue and support likely needs to restart or re-provision the workspace.

@roberto_rob dima’s right, swap to a Respond to Webhook node instead of the built-in “Respond Immediately” — Meta needs the raw challenge back as plain text and the inline response mode can choke on query params in Cloud.

Import that, publish it, and hit the production URL in your browser first to confirm you get 123 back before pointing Meta at it.