On this page

Too long? Read this
- Delays on marketing sends come from four mechanisms: Meta pacing new templates, Meta's optimised delivery via the Marketing Messages API, daily and portfolio limits, and your tool's own pacing and holds
- None of them is a failure; messages arrive in waves and reports show held states with reasons
- Recipient-side delays (phone offline) look similar but are different: Sent without Delivered
- Plan with warm-up, send well within limits, do not resend, and read the report's held reasons before acting
A broadcast to 8,000 people is marked sent at 10 am. By 10:15 only 600 have been delivered; by 11 am, 5,000; by evening, 7,400; and 600 are "held". Nothing is broken. Marketing delivery on WhatsApp in 2026 runs through several layers that each add time, and understanding them is the difference between a calm operator and someone who resends three times and damages the account. This guide explains each layer, how to tell them apart in a report, and what to do.
The four sender-side layers
| Layer | Who applies it | What it does | Typical delay |
|---|---|---|---|
| Template pacing | Meta | Delivers a sample of a new or edited marketing template, watches engagement, releases or pauses the rest | Minutes to an hour |
| Optimised delivery (Marketing Messages API) | Meta | Times each delivery to the recipient's likely engagement within your window | Minutes to hours, within the window you allow |
| Messaging limits | Meta, enforced by your tool | Caps unique marketing recipients per 24 hours per number and per portfolio | Until the rolling window frees units |
| Tool pacing and holds | Your tool | Sends below throughput and holds recipients on Meta signals (131049, 132015, 130429, 135000) | Seconds to a day depending on the signal |
Recipient-side delays are different
A message that shows one tick (Sent) for a long time has left your tool and Meta; the recipient's phone is offline or WhatsApp is not running. Meta holds it for up to 30 days. A campaign with many Sent-not-Delivered after a day is a stale list, not a delivery problem. Held recipients, by contrast, have not been handed to Meta yet or were refused for now, and show a reason.

Layer one: Meta's template pacing
Since 2024 Meta paces marketing templates that are new or recently edited: a portion of recipients receive the message first, Meta observes reads, replies, blocks and reports for a short period, and then either releases the remaining sends or pauses the template (error 132015) if engagement is poor. The purpose is to stop a bad template reaching a whole list. In practice it means the first send of any new template looks slow, and that warming a template on an engaged segment before a large send is the sensible sequence.
Layer two: the Marketing Messages API
Meta's Marketing Messages API (often called MM Lite) is a separate send path for marketing templates through which Meta applies its own delivery optimisation: the message is delivered at a time Meta predicts the person will engage, inside a window you allow, and results can be reported in Ads Manager. Pricing is identical to the Cloud API. VGraple CRM routes eligible marketing sends through it, which is why a campaign started at noon may deliver to some people at 7 pm; the trade-off is control for engagement.
Layer three: limits
Each number, and since October 2025 each Business Portfolio, has a cap on unique marketing recipients per rolling 24 hours (250, 1,000, 10,000, 100,000, unlimited). A list larger than the remaining allowance cannot be sent today; a tool that understands this holds the excess and releases it as units free up, which shows as a campaign that continues over two or three days. Sending anyway would produce failures, not deliveries.
Layer four: your tool's pacing and holds
A well-built sender releases messages to Meta at a controlled rate (VGraple CRM: 50 per second on a green number, 25 on yellow, 5 on red, 4 in coexistence), backs off on rate limits (130429), holds recipients who fail with the per-user cap (131049) for a single retry after a day, pauses on template pauses (132015) until they lift, and treats portfolio pacing (135000) as a temporary hold. Each of these appears in the report as a held recipient with a reason rather than a failure.
Reading the report
| What you see | Meaning | Action |
|---|---|---|
| Delivered climbing in waves | Pacing or optimised delivery | None |
| A block of recipients held: daily limit | Limit reached | None; they send as the window rolls |
| Held: paced by Meta | Template sampling | None; if it turns into 132015, switch templates |
| Held: recipient capped (131049) | Per-user cap | None; one retry after a day |
| Held: template paused (132015) | Quality pause | Wait or switch the campaign to another template |
| Failed: 131026 | Not on WhatsApp or blocked | Suppressed automatically |
| Sent, not delivered, for a day | Phone offline | None; consider list hygiene |
A timeline of a normal large send
10:00 the campaign starts; the tool sends at 50 per second, so 8,000 messages reach Meta within three minutes. 10:03 Meta has delivered about 600 and is pacing the rest because the template was edited yesterday. 10:40 pacing releases; deliveries climb to 5,000 by 11:00. During the morning 1,100 recipients fail with 131049 and are held for a retry tomorrow; 300 fail with 131026 and are suppressed. The daily limit was 10,000 and 8,000 were sent, so nothing is held for the limit. By 18:00, 6,500 are delivered and 4,900 read; 700 remain Sent without Delivered because those phones are offline. Tomorrow at 10:00 the 1,100 capped recipients are retried once and 700 deliver. Final reach: 7,200 of 8,000, with no duplicates and no penalties. Every number in this story is visible on the report as it happens.
What to do, and what not to do
- Warm up new templates on a small engaged segment before a large send.
- Schedule big campaigns with room under the daily limit and with a window wide enough for optimised delivery.
- Read the held reasons before touching anything.
- Never resend, clone or re-import to "push it through"; duplicates annoy customers and retry penalties slow the account.
- Keep the quality rating green; pacing is gentler on trusted numbers.
The messages delayed or held and broadcast stuck in sending articles show each state in VGraple CRM; the tiers guide and the frequency cap guide cover the two Meta mechanisms in depth.