WhatsApp Webhook Error 100: "Before Override the Current Callback URI…"

"(#100) Before override the current callback uri" means your app must subscribe to the WABA messages field first. The two-step fix, plus webhook 2200/2201.

TL;DR: This error means you tried to set a per-WABA override_callback_uri before your app was subscribed to that WhatsApp Business Account's messages webhook. The fix is a two-step flow: first subscribe the app to the WABA, then override the callback URI. It is returned as Graph code 100 (OAuthException).

What This Error Means

The exact message is: "(#100) Before override the current callback uri, your app must be subscribed to receive messages for WhatsApp Business Account." On Meta's error table, code 100 is the generic "request included one or more unsupported or misspelled parameters" OAuthException; this override case is a specific code-100 message. Meta requires the app to be subscribed to the WABA (via POST /{waba-id}/subscribed_apps) before you can set or override its callback URI — a documented two-step sequence.

Where You See It

An immediate API error (HTTP 400) when calling /{waba-id}/subscribed_apps with override_callback_uri while not yet subscribed.

Common Causes

  • Attempting subscription + callback override in a single call.
  • Skipping the initial subscribed_apps subscription step.
  • Missing whatsapp_business_management / whatsapp_business_messaging permissions.

How to Fix It

  1. First POST /{waba-id}/subscribed_apps to subscribe your app to the WABA.
  2. Then set the override_callback_uri (and verify_token) in a second step.
  3. Ensure your app has whatsapp_business_management and whatsapp_business_messaging.
  4. Confirm the messages webhook field is subscribed.

Webhook Verification Errors 2200 and 2201

Note: 2200/2201 are Graph-webhook verification errors seen during callback setup. They are not part of the WhatsApp Cloud API error-code table; the exact wording below is reported by practitioners and in Graph webhook contexts — verify against your own logs.

  • 2200 — Callback/subscription verification failed: Meta's GET verification to your callback URL failed (commonly "HTTP Status Code = 404 / Not Found", "Request Timeout / 408", or SSL/cURL errors). Your endpoint didn't respond correctly to the verification request.
  • 2201 — Invalid hub.challenge: your endpoint responded but didn't echo back the exact hub.challenge value (e.g. it returned JSON or HTML instead of the raw token).

To pass verification, on the GET request confirm hub.mode == subscribe and hub.verify_token matches, then return the raw hub.challenge value with HTTP 200 — no JSON/HTML envelope.

How to Prevent It

  • Always subscribe first, override second.
  • Keep the callback endpoint publicly reachable over HTTPS and fast (avoid timeouts); never point Meta at localhost or private URLs.
  • Exempt the verification path from aggressive rate limiting/proxy rewriting.

FAQ

What does "Before override the current callback uri" mean? Subscribe your app to the WABA first, then override the callback URI.

What error code is it? Graph code 100 (OAuthException).

What are 2200 and 2201? Graph-webhook verification errors — 2200 is a callback/verification failure, 2201 is a hub.challenge mismatch. They're not in Meta's WhatsApp Cloud API error table.

Can I return JSON like { "challenge": "123" }? No — return the raw challenge value with HTTP 200.

How Dualhook Helps

This is the core of what Dualhook does, so the fix is largely handled for you. Dualhook connects your WABA via Meta Embedded Signup and manages the subscribe-then-override sequence on override_callback_uri, routing message-path webhooks straight to your endpoint while staying out of the message path and never reading or storing message content. It surfaces subscription state and webhook health so you can see if a WABA is unsubscribed or a callback verification is failing. See WhatsApp Webhook Override and Messaging Health Status.

Browse more docsStart Free Trial