Troubleshooting: WhatsApp campaign auto-paused on a RED quality rating
A WhatsApp campaign goes topaused the moment you launch it, and the
campaign record says why: failure_code: WHATSAPP_QUALITY_RED. That is
Orbit’s pre-send quality gate, not a bug in the launch — the launch
refused to queue sends because Meta’s quality rating on your WhatsApp
Business phone number is RED, and raising the rating is a Meta-side
fix, not an Orbit-side one. This page reads the pause, checks the
rating, and walks the recovery.
The quality rating is Meta’s signal, computed from how your recipients
react to your numbers — blocks, reports, and negative feedback weigh
against you. Orbit reads the rating Meta reports and enforces a hold
while it is
RED; nothing in this page changes the rating itself.
Recovery happens in Meta Business Manager.Symptoms
The pause has a specific signature — check the campaign before treating it like a routine operator pause:- The campaign goes to
pausedimmediately on launch instead of sending. The launch request returns a 503 withcode: "CHANNEL_UNAVAILABLE"and message"WhatsApp quality rating is RED — messaging paused by Meta". - The campaign’s
metadatacarries the full auto-pause stamp:auto_paused_reason: "whatsapp_quality_red",failure_code: "WHATSAPP_QUALITY_RED", a human-readablefailure_reason, and afailure_attimestamp. - A
campaign.pausedwebhook fires withreason: "whatsapp_quality_red"in the payload. The envelope is deliberately identical to an operator pause — automation that listens for campaign pauses sees every pause class — so the deciding field is the webhook payloadreason(ormetadata.failure_codeon the campaign record), not the event type. - The dashboard banner on the campaign-detail page tells you Meta paused messaging rather than a teammate clicking Pause.
metadata.failure_code is a different value — a credit cap, a
circuit-break, or anything else — you are on the wrong page. If the
field is absent entirely, someone paused the campaign by hand; check
with your team before you chase a Meta quality issue.
What the quality rating is
Meta assigns every phone number on your WhatsApp Business account one of three ratings, reported on the phone-number record in Meta Business Manager and synced to Orbit through Meta’s quality webhooks and the scheduled WABA health reconcile:GREEN— normal. Campaign and one-off sends proceed.YELLOW— degraded recipient feedback. Orbit still sends, but the launch log notes the reduced rate, and Meta may throttle the number’s throughput. Treat it as an early warning.RED— recipients are blocking or reporting this number heavily. Meta itself pauses messaging, and Orbit refuses to queue new campaign sends until the rating recovers.
Inspect the rating
Read the per-channel quality posture from the unified Brand Identity endpoint — the same read-only rollup that backs the dashboard’s trust score:channels array carries a per-channel entry; on WhatsApp that is
the whatsapp_business entry with Meta’s live posture for your sender
(reads are fail-soft — one unreachable source degrades its own channel
entry, never the whole response). The dashboard renders the same read
under Settings → Brand Identity. Cross-check in Meta Business
Manager (WhatsApp Manager → your phone number) if the API read and the
banner disagree — Meta is the source of truth, and the rating in
Orbit’s store refreshes on webhook or reconcile cycles.
The quality rating attaches to the phone number on your WABA, not
to a single template. Every WhatsApp campaign routed through that
number hits the same gate, so auto-paused campaigns queue up in
parallel — they are all symptoms of the same number-level rating.
(The per-template
paused status in Meta’s template list is a
separate signal; both tell you recipients are rejecting the content.)Recovery
The only way out is through Meta — work this in order:- Fix what recipients are reacting to. In Meta Business Manager, open the phone number’s Insights and find which templates earn blocks and reports. Rework them so the first line states why the recipient is getting the message, and remove anything promotional from utility and authentication templates. The template troubleshooting page walks the content rules; the content policy lists what Meta rejects.
- Wait for the rating to recover. Meta re-scores on a rolling
window of recent feedback, so the rating climbs back to
YELLOWorGREENas recipients of later traffic stop blocking and reporting. The recovery lands in Orbit on Meta’s quality webhook or the scheduled health reconcile — no Orbit action is required to notice it. - Resume the campaign once the rating is
YELLOWorGREEN. Re-launch the paused campaign (it is still full of the same recipients), and sends already stamped with counters continue from where the counter record left off.
RED across a full feedback window even after the
content fix, treat it as a Meta-side dispute: appeal through Meta
Business Support with the recipient-feedback evidence. The escalation
payload on the
template page
is a good one-message packet for that appeal too.
What not to do
- Do not resume the campaign while the rating is still
RED. The quality gate re-runs at launch and auto-pauses it again — the sameWHATSAPP_QUALITY_REDstamp, and every launch attempt is counted against nothing. Fix the content, wait forYELLOWorGREEN, then resume. - Do not disconnect and re-connect the WABA. The quality rating
follows the phone number at Meta, not the connection state in Orbit.
Re-onboarding reads the same
REDrating, and the next launch auto-pauses again. - Do not route the campaign through a different phone number on the same WABA expecting a cache. The rating is per phone number, but recipient feedback for a shared number family weighs on one another — and splitting recipients across numbers to dodge the gate is exactly the pattern Meta’s enforcement catches. Fix the content.
- Do not treat the pause as a campaign bug. The gate fires at
launch because Meta already reported
RED; re-creating the campaign changes nothing about that.
See also
- Troubleshoot WhatsApp templates — the content-side fix workflow the quality recovery in this page depends on.
- Troubleshoot the WhatsApp connection —
full account-level states (
WHATSAPP_ACCOUNT_LOCKED,WHATSAPP_CONNECTION_INVALID) the quality gate is one member of. - Brand identity and trust score — the per-channel rollup the inspect step here reads.
- WhatsApp billing issue — the parallel Meta-side block (131042 payment hold) that also auto-pauses sends but is a billing, not a quality, problem.