When you hit a limit
Limits do not all bite the same way. A stored-resource ceiling refuses a click — you cannot create the thing. A send quota refuses nothing you can see at the time: the campaign runs, and some recipients simply do not receive the message, with a reason recorded in the statistics. This page tells you which is which, names the reasons exactly as they appear, and says how to get moving again. Written for all three roles: the refusal codes are for Dev, the drop reasons for Marketing reading a campaign report, the unblocking paths for Product/Ops.TL;DR
- Ceiling full → creation refused. A
409with the codelimit_exceeded:<resource>, plus the limit and what you currently own. Same refusal from the dashboard, the copilot and MCP. - Volume exhausted → recipients dropped. The first recipients of the batch go out; the tail is dropped and counted under
quota_exceeded:<resource>in the campaign’s send statistics. - A channel your plan does not carry behaves like an exhausted one — every recipient on that step is dropped under that channel’s reason.
- Capability off → the action is refused outright. That is not a quota, and no amount of waiting fixes it.
- Nothing you already own is ever taken away. Ceilings refuse new creations only.
- Renewal is UTC: monthly grants at the start of the calendar month, daily grants at midnight.
Two limits, two behaviours
A ceiling is full: the creation is refused
What gets refused
What the refusal says
409. The code carries the resource that is full; limit is your effective ceiling and current is what you own right now (the figures above are illustrative — yours come from your plan). For assets the two are in megabytes, everything else is a count.
What is not refused
Editing is never gated. An organisation that ends up over a ceiling — after a plan change, or a tightened contract — keeps every campaign, every component and every asset, and keeps editing all of them. Only a new creation is refused.How to free capacity
The count is taken live, so it drops the moment you clean up:- Archive a campaign. Archived campaigns do not count; the slot is immediately available.
- Delete an asset from the library. Its megabytes come straight off the total.
- Delete a layout or a section you no longer use. Version history was never counted, so only the component itself matters.
Volume is exhausted: recipients are dropped
Where it happens
A campaign step resolves its audience, drops the recipients that are ineligible or malformed, and only then asks for credits — for exactly the recipients that would otherwise have been sent to. You are never billed for a recipient who was going to be filtered out anyway. If the remaining credits do not cover the batch, the first recipients are sent (their order is preserved) and the tail is dropped. Both bounds apply at once: the step’s channel and the cross-channel total. Whichever runs out first caps the batch. Only campaigns in theLive status consume. Editing, Implementation, Review and Offline runs — review simulations included — never draw on your volume.
The reasons you will see
Dropped recipients are counted by reason on the campaign’s Sends widget, under a line reading N recipient(s) filtered out of M. The quota reasons are:quota_exceeded:global alongside a healthy channel gauge is the normal case, not a bug: the channel had room, the cross-channel total did not.
These reasons are classified as warnings, not errors. A quota drop says nothing is wrong with your integration — it says the budget ran out.
A closed channel looks like an exhausted one
If your plan does not carry a channel, that channel has no credits at all — so a step on it drops every recipient under its own quota reason. The gauge for it reads Not included in your plan rather than showing a remaining count. The fix is a plan or capability change, never patience.The other reasons in the same breakdown
The Sends breakdown mixes quota drops with every other reason a recipient did not receive a message. Knowing which is which saves a wrong diagnosis:notification_pressure_exceeded (Notification pressure exceeded) is reserved for a future per-recipient daily cap and is never emitted today.
See delivery history and stats for the rest of the funnel.
The blocked-send log
The Billing & usage page ends with Recent blocked sends: one line per refusal, naming how many sends were blocked and on which resource. It only ever lists sends that were genuinely blocked — the would-be refusals recorded for calibration during the rollout are deliberately kept out, so an entry there always means a delivery did not happen.A capability is off: the action is refused
This is not a quota and it does not renew. The action is simply unavailable:When the counters renew
How to unblock
Read the gauge that actually stopped you
Free what you can
Wait for the period, if the timing works
Change the plan, or add a pack
Ask, for anything bespoke
FAQ
Half our recipients got the email and half did not. Was that a quota?
Half our recipients got the email and half did not. Was that a quota?
quota_exceeded: on the step’s channel, on the cross-channel total, or both — and the recipients who did receive it are the first of the batch, not a random half. If the reason says unsubscribed or suppressed instead, it was consent, not budget.Why does the cross-channel total say we are out when the email gauge has room?
Why does the cross-channel total say we are out when the email gauge has room?
Can we get back credits spent on a send that failed?
Can we get back credits spent on a send that failed?
Do review simulations and sandbox testing burn our quota?
Do review simulations and sandbox testing burn our quota?
Live campaigns consume. A campaign in Review can be simulated as often as you like, and it costs nothing — which is the point of having a review step at all.We were refused a campaign creation from our IDE, over MCP. Same rules?
We were refused a campaign creation from our IDE, over MCP. Same rules?
limit_exceeded:campaigns refusal.Our plan changed and we are now above a ceiling. What breaks?
Our plan changed and we are now above a ceiling. What breaks?
A whole channel dropped every single recipient. Is that a bug?
A whole channel dropped every single recipient. Is that a bug?
See also
What your plan includes
AI credits
Delivery history & stats
Campaigns
Live consumes.