Messenger error 4: Minimum delay between marketing notifications
Last verified against Meta for Developers - Messenger Platform error codes
Marketing Messages - There has to be a minimum delay between 2 notifications for the given notificationWhat error 4 means
Code 4 with subcode 2018354 belongs to Messenger's marketing-messages feature, the opt-in system that lets a Page send recurring promotional notifications after the standard window closes. Each opt-in carries a frequency the person agreed to, stored in the notification_messages_frequency field, and this error fires when a send would breach that agreed cadence: two notifications too close together for the topic the person subscribed to.
Meta's error-codes page is unusually reassuring about it: "This error code will not cause your app to be flagged or blocked for abuse. It is okay to ignore this error." The platform is enforcing the cadence for you, dropping the premature message rather than punishing the attempt. The same page adds the operational advice that matters: keep track of which users you have already messaged within the agreed cadence, so you can exclude them from the next batch of broadcast messages.
In practice this error is a symptom of broadcast bookkeeping drift. Campaign tools that select "all opted-in users" for every blast, without recording who received the previous notification and when, will hit 2018354 on the overlap set every time two campaigns run close together. The failure is harmless per Meta, but the noise buries real errors, and the users involved received nothing, so the campaign report overstates reach unless the errors are counted. Contrast with 10/1893015, where the person actively clicked "Stop these messages," a permanent stop rather than a timing rule.
What it looks like
{
"error": {
"message": "(#4) There has to be a minimum delay between 2 notifications for the given notification",
"type": "OAuthException",
"code": 4,
"error_subcode": 2018354,
"fbtrace_id": "BLBz/WZt8dN"
}
}Why it happens
- Two marketing-message sends to the same person within the frequency the opt-in specified.
- Broadcast segments built without excluding recipients of the previous notification.
- Overlapping campaigns targeting the same opted-in topic in the same period.
- Retries of previously succeeded sends re-triggering the cadence check.
- No per-user send log for the marketing-messages topic, making cadence unknowable to your scheduler.
How to fix Messenger error 4
- 1Treat the error as a skip, not a failure: log it, exclude the user from this batch, and move on without retrying.
- 2Record a per-user, per-topic timestamp on every successful marketing notification and filter the next audience by it.
- 3Space campaigns for the same topic further apart than the agreed frequency.
- 4Deduplicate scheduled sends so a user subscribed via multiple paths gets one notification, not several colliding ones.
- 5Count 2018354 skips separately in campaign reports so reach numbers stay honest.
How to stop it recurring
Build the cadence into the scheduler rather than discovering it at send time: one row per (user, topic) with last-sent timestamp, and audiences computed as opted-in minus recently-notified. Honor the person's chosen frequency as a product decision, not just an API constraint, cadence violations that do get through are what drive the blocks and negative feedback that end in 368. The marketing-messages caps sit with the other volume rules in the limits reference.
Official reference: Meta for Developers - Messenger Platform error codes. See all Messenger error codes or the Messenger limits and quotas.
Related codes
- 10: User stopped notification messages for this topic(#10) This user has currently stopped notification messages for this topic
- 10: Page restricted from opt-in requestsApplication does not have permission for this action
- 4: Application request limit reachedRate Limit error: Application request limit reached.
- 368: Temporarily blocked for policies violationsTemporarily blocked for policies violations
Error 4 - quick answers
What does Messenger error 4 mean?
Code 4 with subcode 2018354 belongs to Messenger's marketing-messages feature, the opt-in system that lets a Page send recurring promotional notifications after the standard window closes.
How do I fix Messenger error 4?
1. Treat the error as a skip, not a failure: log it, exclude the user from this batch, and move on without retrying. 2. Record a per-user, per-topic timestamp on every successful marketing notification and filter the next audience by it. 3. Space campaigns for the same topic further apart than the agreed frequency. 4. Deduplicate scheduled sends so a user subscribed via multiple paths gets one notification, not several colliding ones. 5. Count 2018354 skips separately in…
Can I retry after error 4?
Yes - this is a retryable condition. Back off (start around one second and double on each attempt, with jitter) and watch for a retry-after hint from the platform before resending.
Stop debugging Messenger by hand
Connect the channel through Conferbot: tokens, webhooks and retries are handled, failures show as readable status.