If the WhatsApp "messages" webhook is silent while other webhooks fire, the WhatsApp Business Account is probably not subscribed to your app. Call: POST https://graph.facebook.com/v21.0/{whatsapp-business-account-id}/subscribed_apps with an Authorization bearer header. Expect {"success": true}. Confirm it stuck with GET on the same endpoint; the response should list whatsapp_business_api_data with your app name. Only then will Meta deliver messages webhooks to your callback URL. Rechecking the webhook URL in the dashboard will not fix this, it is a separate subscription step.

Context: Stack Overflow #79175537 (accepted answer, 38 votes): "messages" webhook never fires even though other webhooks work and the endpoint is publicly reachable. The accepted answer says the fix is subscribing the WhatsApp Business Account to the app, which the dashboard setup flow does not do for you.