Runbook: WhatsApp template reject spike
Alert source: packages/testkit/alerts/whatsapp-windows.rules.yaml
Canonical markdown: docs/runbooks/whatsapp-template-reject-spike.md
Severity: critical.
Symptom
5% of template sends on WhatsApp channel
{{ id }}are returningrejectedorerrorover a 5-minute window.
Likely cause
- Template not approved or recently un-approved by Meta.
- Parameter count / type mismatch vs the approved template.
- Recipient has opted out and the message was rejected at the platform layer.
Immediate mitigation
Pause the outbound template campaign until the rejection cause is clear:
# There is no channel-pause verb — comment the channel out of
# channels.yaml (or set the campaign source aside) and restart:
declaragent down && declaragent up -d
Sustained rejections put the business account's tier health at risk.
Root-cause investigation
# Recent outbound channel audit records (filter by channel id + outcome in jq):
declaragent audit query --kind channel_outbound --since -15m --json
# Cross-reference in Meta Business Manager → Message Templates.
Post-incident
- Capture: template name, rejection reason, audience slice, tier impact.
- Close when: reject rate < 1% for 15 minutes AND Meta reports tier health unchanged.
- If Meta auto-demoted the tier, file a reinstatement request citing the incident timeline.