External OAuth contract drift
Meta WhatsApp Embedded Signup OAuth scopes whatsapp_business_messaging whatsapp_business_management business_management v23.0
For WhatsApp Embedded Signup failures such as missing WABA scope or webhook registration errors, make sure the OAuth request includes the current WhatsApp business scopes expected by Meta for the Graph API version you are using.
Agent Quick Fix
const scopes = [
"business_management",
"whatsapp_business_management",
"whatsapp_business_messaging"
];
const authUrl = new URL("https://www.facebook.com/v23.0/dialog/oauth");
authUrl.searchParams.set("scope", scopes.join(","));
Symptom
Embedded signup creates partial local state, but Meta rejects webhook registration, reports `No WABA scope found in token`, or returns an OAuth exception during WhatsApp channel setup.
Why This Happens
The accepted OAuth scope set is controlled by Meta, not by the local app. Existing integration code can be stale even when the local callback and provider configuration look valid.
Common Wrong Fixes
- Only retrying webhook registration with the same token.
- Changing local inbox creation code without changing OAuth scopes.
- Assuming older Graph API scope examples are still sufficient.
Codex Search Keywords
Meta WhatsApp Embedded Signup OAuth scopes whatsapp_business_messaging whatsapp_business_management business_management v23.0
Chatwoot WhatsApp embedded signup OAuth scopes No WABA scope found in token callback URL plus Meta v23.0
site:developers.facebook.com whatsapp embedded signup scopes business_management whatsapp_business_management whatsapp_business_messaging