Why someone wasn't reached
Every reason a campaign recipient shows as Not sent or failed, as the console labels it, with what happened, what to do, and whether retrying helps.
Every recipient who didn't get a campaign carries a reason. The console shows its label in the Reason column, groups them in Why N people didn't get this, and explains each one when you open the recipient. See Follow a campaign and read its results.
Each reason has a scope, and that decides what to do:
| Scope | Meaning | What the console offers |
|---|---|---|
| One person | Something about this recipient. | No button. Retrying won't change most of these. |
| Account (badge Affects every message) | The account, the number or the template is the problem. | No retry button, and the note Retrying will not help until this is fixed. |
| Temporary | Busy or rate-limited, on our side or the provider's. | Retry these, for admins. |
Retry these and Retry N failed do the same thing: they requeue every failed recipient on the campaign, not only the group you pressed it on. People left out by a rule (Not sent) are never retried.
Left out by a rule #
These are the rules working as intended. Amber in the console, shown as Not sent.
| Label | Code | What happened | What to do |
|---|---|---|---|
| Opted out | suppressed |
The person asked to stop receiving messages from you. | Nothing; it stands until they message you again. |
| No consent on this channel | channel_consent_missing |
The contact's record says they opted out of this channel. | Nothing, or reach them on a channel they haven't opted out of. |
| Already messaged today | daily_contact_cap |
This campaign already reached them today. | Nothing. One message per campaign per day is fixed. |
| Over the weekly limit | weekly_contact_cap |
They've had as many campaign messages this week as your workspace allows. | Nothing, or raise Most messages one person gets a week (up to 4) in Sending rules. |
| Duplicate | duplicate_recipient |
The same person appeared more than once. | Nothing; they got one message. |
| Missing a personalised value | missing_variable |
The message needs a value they don't have, such as an empty name cell. | Fill the value, or map the placeholder to something everyone has. |
| Unusable phone number | invalid_destination |
Not a valid, dialable number. | Correct it, with the country code. |
| Outside the 24-hour window | session_window_closed |
Free-form text to someone whose 24-hour window has closed. | Send an approved template. |
| Campaign cancelled | campaign_cancelled |
The campaign was cancelled before they were reached. | Duplicate the campaign to reach them. |
Template problems #
These affect every message, because every recipient gets the same template.
| Label | Code | What happened | What to do |
|---|---|---|---|
| Template not found | template_not_found, Meta 132001 |
The template no longer exists, or not in that language. | Pick another, or recreate it and get it approved. |
| Template not approved | template_not_approved |
Meta hasn't approved it. | Wait for the review, or edit and resubmit it. |
| Template values did not fit | template_variables, Meta 132000, 132012 |
The values don't match the template's placeholders. | Check the placeholder mapping against the template. |
| Template media missing | template_media_missing |
The template has an image or video header and nothing is attached. | Attach the file to the template; it needs no new review. |
| Message too long | Meta 132005 |
With this person's values filled in, the message is too long. | Shorten the template or the values. |
| Template rejected on format | Meta 132007 |
The formatting breaks Meta's content rules. | Edit and resubmit the template. |
| Template paused | Meta 132015 |
Too many people marked it unwanted, so Meta paused it. | Use another template; the pause lifts as quality recovers. |
| Template disabled | Meta 132016 |
Meta disabled it permanently for poor quality. | Create a new template. |
| Could not read the media | Meta 131052 |
Meta couldn't download the header file. | Re-upload the image or video, then retry. |
| Could not send the media | Meta 131053 |
Meta rejected the file, usually format or size. | Use a JPEG or PNG under 5 MB, or an MP4 under 16 MB, then retry. |
| Message was incomplete | Meta 131008 |
A value the message needed was missing. | Check the placeholder mapping, then retry. |
Account and number problems #
These affect every message. Fix them in Meta Business Manager or under Channels, then retry.
| Label | Meta code | What happened | What to do |
|---|---|---|---|
| Payment issue on your WhatsApp account | 131042 |
The WhatsApp Business Account has no valid payment method. | Fix the payment method in Meta Business Manager, then retry. |
| WhatsApp account restricted | 131031 |
Meta locked or restricted the account, usually for a policy violation. | Request a review in Meta Business Manager. |
| Temporarily blocked by Meta | 368 |
A temporary block for policy violations. | Read Meta's notice; sending resumes when it expires. |
| Number not registered | 133010 |
The number isn't registered for sending. | Finish its registration under Channels, then retry. |
| Number not set up correctly | 131045 |
The number's registration is incomplete. | Re-register it under Channels, then retry. |
| WhatsApp connection expired | 190 |
The connection to the WhatsApp account has expired. | Reconnect the number under Channels, then retry. |
| Permission denied | 131005 |
The account isn't allowed to send this message. | Reconnect the number; contact support if it persists. |
| Held back for message quality | 131048 |
Too many people blocked or reported the number, so Meta limited it. | Send less often, to people who expect you. The limit lifts as quality recovers. |
| Channel not connected | channel_not_connected |
The campaign's channel isn't connected. | Connect it under Channels, then use Retry N failed to continue the campaign. See It stopped halfway. |
Delivery problems for one person #
| Label | Meta code | What happened | What to do |
|---|---|---|---|
| Cannot receive WhatsApp messages | 131026 |
Meta couldn't deliver to the number. Usually it isn't on WhatsApp; a blocked business or an old app look the same. | Check the number. A few of these in a large list is normal. |
| Outside the 24-hour window | 131047 |
Free-form text more than 24 hours after their last message. | Send an approved template. |
| Sent to your own number | 131021 |
The recipient is your sending number. | Remove it from the list. |
| Not delivered — Meta experiment | 130472 |
The person is in a Meta test group that limits marketing messages. | Nothing; it doesn't mean the number is wrong. |
| Held back by Meta | 131049 |
Meta limits how many marketing messages one person gets, and held this one back. | Nothing. Fewer, more relevant marketing messages help. |
Temporary #
Retry these.
| Label | Code | What happened |
|---|---|---|
| Sending too fast | Meta 130429, 80007 |
Messages went out faster than Meta allows for the number. Gradual pacing avoids it. |
| Rate limited | rate_limited |
Messages went out faster than the provider allows. |
| Too many messages to this person | Meta 131056 |
Too many messages to one person in a short time. Retry later. |
| WhatsApp is busy | Meta 131016 |
Meta's service was briefly unavailable. |
| WhatsApp had a problem | Meta 131000 |
An unspecified error at Meta. |
| WhatsApp rejected the message | Meta 100 |
Meta rejected how the message was built. Contact support if it keeps happening. |
| The provider rejected it | provider_error |
The provider refused the message without a reason. Contact support with the campaign name if it keeps happening. |
| Waiting for a free line | call_concurrency |
Every call line was busy. Not a failure: the number stays queued and is dialled automatically. |
A Meta code that isn't in these tables shows Meta's own title as the label, with the code in the recipient's details.
How a call ended #
For a call batch, How the calls ended and the recipient's details use these labels:
| Label | Meaning | What to do |
|---|---|---|
| Call completed | The agent finished the conversation. | Nothing. |
| Call ended | Answered and finished normally. | Nothing. |
| Answered, then hung up | They picked up and ended the call. | Many of these usually means the opening line isn't landing. |
| Nobody answered | It rang and nobody picked up. | Turn on Try again if nobody answers for a second try. |
| Line busy | The number was engaged. | Retry; it usually clears within the hour. |
| Call declined | They actively declined the call. | Don't call again soon. |
| Call did not connect | The call couldn't be placed. | Check the number, then retry. |
What each call produced, such as Completed or Asked to call back, is on the Outcomes tab; see Call outcomes.