ReachleeReachlee
Get started
Incident guide

Instagram restricted your account.
Here's which kind, and what happens next

Most automation vendors won't publish this page, because it means admitting restrictions happen. They do — and there are several distinct kinds with very different consequences. Knowing which one you've hit tells you whether to wait ten minutes, pause for a few hours, change what you send, or worry seriously.

Updated 28 October 2026 · Human-verified
Real error codes from production · unpublished thresholds labelled as such

The short answer

There are four different things people call a restriction. A recoverable rate limit returns documented error codes with an estimated time in minutes until access returns, and clears on its own. A policy block returns error 368 with subcode 1404169, carries no recovery estimate, and requires stopping sends on that account — we pause for 2 hours, longer if it repeats. A messaging restriction is Instagram limiting the account's DMs: most sends come back refused with subcode 2534022, usually over what is being sent, and you appeal it in the Instagram app. An action block hits your login itself, and it's what session-based automation tools cause.

Reachlee in the last 30 days
automated replies sent on Instagram and Facebook
407,105
median time from a comment to the DM
2.8 s

Reachlee platform data for 28 Sep – 28 Oct 2026, across every Instagram account and Facebook Page on Reachlee (test accounts excluded). Totals marked "today" are as of 28 October 2026. Refreshed every month.

1Recoverable throttle: codes 4, 17, 32, 613, or Business Use Case codes like 80002 — Meta reports estimated_time_to_regain_access in minutes, and waiting works
2Policy block: error 368, subcode 1404169 — no recovery header exists, retrying makes it worse, stop sending on that account
3Messaging restriction: most of the account's DMs refused with subcode 2534022, across many people at once — Instagram has limited the account's messaging; appeal under Settings → Account status
4Comment-reply spam signal: subcode 1772111 — Meta considers your public replies too spammy; pause public replies, DMs can usually continue
5Generic error code 2 with no usage headers is the undocumented soft clamp — real, unpublished, and only cured by slowing down
6Action blocks and checkpoints on your personal account come from session-based tools, not from the official API
7Meta does not publish the thresholds that trip policy blocks, and any article giving you an exact number is guessing
8The single best protection is a tool that reads Meta's usage headers and pauses before a breach rather than after
9Rate limits and policy blocks have no appeal — recovery is time, and the fix is volume and pattern discipline. A messaging restriction can be appealed in the Instagram app

Telling them apart

What you seeWhat it isHow longWhat to do
Codes 4 / 17 / 32 / 613, or 80002, with usage headersDocumented rate limit — you used your call budgetMinutes to an hour; Meta states the estimateWait out the reported estimate, then resume normally
Error 368, subcode 1404169Policy-level block on messaging for that accountNo estimate published; hours, sometimes a dayStop all sends on that account, do not retry, review volume
Most DMs refused with subcode 2534022, across many people at onceInstagram has restricted the account's messaging, usually over content or volumeUntil the appeal succeeds or sends go through again; often daysFix what the automations send, appeal in the app (Settings → Account status), keep the automations on
Subcode 1772111 on a public comment replyMeta flagged your comment-reply activity as spammyTreat as a dayStop posting public replies; DMs generally still work
Error code 2, no usage headers, no estimateThe undocumented soft clamp under sustained volumeUnpredictableBack off hard and reduce sending rate, not just retry
Checkpoint, 'action blocked', or login challenge in the appAnti-automation enforcement on your personal accountHours to permanent, at Instagram's discretionStop the session-based tool entirely; this is the serious one

Sources: Meta's Graph API rate-limiting documentation for the documented codes, and our own production error taxonomy for 1404169, 1772111, 2534022 and the code-2 clamp. Two rows touch the Instagram account itself: a messaging restriction, which follows what is sent whatever tool sends it, and the bottom row, which comes from tools that drive your login and which official-API tools cannot cause.

The recoverable kind: you used your budget

Meta rate-limits the Graph API by formula rather than by a flat daily number, and it tells you where you stand on every single response. The X-App-Usage header reports your app's rolling one-hour budget as percentages for call count, total time and CPU time, with throttling beginning when any field reaches 100. The X-Business-Use-Case-Usage header does the same per business account and carries the most useful field in the system: estimated_time_to_regain_access, in minutes. When you breach, you get a documented code — 4 for app-level, 17 for user-level, 32 for Pages, 613 for a custom limit, or Business Use Case codes like 80002 for Instagram. This kind of restriction is completely routine and completely recoverable. A well-built tool never even reaches it, because it watches the percentages climb and defers sends before the ceiling.

  • Rolling windows, not midnight resets — budget recovers gradually as time passes
  • The estimate Meta gives you is the number to sleep on; guessing longer wastes throughput, guessing shorter re-trips it
  • Reachlee pauses the affected account for exactly the duration Meta reports, defaulting to 5 minutes when no estimate is given
  • Seeing these occasionally on a big send is normal; seeing them constantly means your tool isn't reading the headers

The serious kind: error 368, subcode 1404169

This is the one that matters. Error 368 with subcode 1404169 is a policy-level block on messaging for that Instagram account, and it behaves differently from a rate limit in one crucial way: there is no recovery header. Meta doesn't tell you how long, doesn't tell you why beyond the policy classification, and provides nothing to wait on. In our experience the correct response is to stop sending on that account and leave it alone — Reachlee pauses the account for 2 hours, lets the next send test whether the block has lifted, stretches the pause to 4, 8 and then 24 hours if it keeps coming back, and ramps sending up gradually afterwards instead of releasing the backlog at once. It logs the event loudly rather than quietly retrying. Retrying into a policy block is actively harmful, because repeated attempts are themselves a signal. We cannot tell you the exact volume or pattern that trips it, because Meta does not publish the thresholds, and we would rather say that plainly than invent a number the way most articles on this topic do.

  • No estimated_time_to_regain_access field exists on this error — there is nothing to poll
  • Retrying is counterproductive and may extend the block
  • Appears under sustained high-volume sending, but the threshold is unpublished and appears to vary by account
  • A tool with no pause mechanism will keep hammering the API on your behalf, which is the worst possible response

The quiet kind: a messaging restriction on the account

This is usually what people mean by 'Instagram restricted my DMs', and it is easy to miss because nothing stops. Sends keep going out, but most of them come back refused with code 10, subcode 2534022 — the same subcode a single person who blocks message requests produces, now across many different people at once. Those people didn't all change their settings overnight: Instagram has limited the account's messaging, often citing spam or prohibited commercial practices. In the cases we've traced it followed what was being sent and how much: automations with no keyword, so every commenter got two or three DMs; medical claims or regulated products next to purchase links; and sudden viral spikes. Since 22 October 2026 Reachlee watches each account's share of refused DMs. When most are refused it pauses the account (an hour at first, longer if it continues), shows a banner and emails you, ramps sending back up after each pause, and clears the flag itself once DMs go through again. The appeal is in the Instagram app under Settings → Account status, and appeals there usually succeed within days.

  • Signal: most of the account's DMs refused with 2534022 across many people, not the odd recipient
  • Usual triggers: no keyword on a busy post, sensitive or regulated products beside purchase links, viral spikes
  • Fix the content first: add a keyword, cut repeat DMs, move medical or regulated claims out of DMs with links
  • Appeal in the Instagram app: Settings → Account status
  • Keep the automations on: Reachlee pauses, alerts and resumes the account itself, so you don't have to switch them off

The comment-reply spam signal: subcode 1772111

Separate from DMs, Instagram watches public comment replies. If your account posts public replies at a pattern Meta reads as spammy, replies start failing with subcode 1772111 and a message saying exactly that. It's worth treating as its own category because the blast radius is narrower than a messaging block: in our handling, public replies stop on that account for 24 hours while DM sending continues, since the signal is specifically about the public comment surface. The practical lesson is about repetition rather than volume. Identical reply text posted rapidly across many comments looks automated in the way Meta objects to, whereas varied replies at a human cadence don't. If you run public auto-replies alongside comment-to-DM, that's the setting worth varying first.

  • Applies to public comment replies, not to DMs
  • Identical text repeated rapidly is the pattern most likely to trip it
  • Reachlee sets a 24-hour flag that stops public replies on the account while DMs continue
  • Public auto-reply is the most expendable part of a funnel — turning it off costs almost nothing if you're near the line

The clamp Meta doesn't document

Beyond everything published, there are throttles nobody writes about. Sends can start failing with error code 2 — a generic 'service temporarily unavailable' — with no usage headers indicating any breach and no recovery estimate to wait out. We've watched this on connected accounts using the official API, under sustained high-volume sending, and the only reliable cure is to slow down rather than to retry. This is the real ceiling on Instagram DM automation, and it's the one that 'unlimited DMs' marketing pretends doesn't exist. Every tool built on the official API is subject to it. The difference between tools is whether they notice: a tool that treats code 2 as a transient error and retries immediately will walk straight into a worse state, while one that treats it as a back-off signal recovers.

Action blocks are a different problem, with a different cause

Everything above happens to what an app sends through Meta's API, a messaging restriction included. An action block is something else: Instagram restricting your login itself, with a checkpoint, a login challenge, an 'action blocked' banner, or in bad cases a suspension. Official-API tools cannot cause this, because they never touch your login — they hold an OAuth token scoped to specific permissions, and exceeding limits produces a rejected API request rather than a challenge on your profile. Action blocks come from session-based automation: tools that drive a logged-in Instagram session to send DMs, follow, or comment at machine speed. Those tools aren't subject to API limits, which is how they advertise unlimited sending, and they're subject to Instagram's anti-bot enforcement instead. The penalty lands on your account while the vendor keeps operating, and recovery is Instagram's decision, not a support ticket anyone can escalate.

  • Official API: OAuth token, scoped permissions, no login to challenge — rate errors land on the app, and only what you send can draw a messaging restriction
  • Session automation: your credentials on someone else's server, and enforcement lands on you
  • If you're seeing checkpoints or action blocks, identify and stop whichever tool is driving your session
  • The community 'safe sending limits' spreadsheets are attempts to reverse-engineer unpublished heuristics that change without notice
How it works

What to do right now, and how to avoid the next one

01

Identify which kind you have before changing anything

Find the actual error your tool recorded. A documented code with a time estimate means wait. Error 368 with subcode 1404169 means stop sending on that account for a few hours. Most DMs refused with 2534022 across many people means a messaging restriction: fix what you send and appeal in the app. A checkpoint inside the Instagram app means a session-based tool is running and should be disconnected immediately. These call for completely different responses, and guessing wrong costs you either throughput or the account.

02

Stop, don't retry

For anything without a recovery estimate, retrying is the one action that reliably makes it worse. Reachlee pauses the account itself — 2 hours on a policy block and an hour at first on a messaging restriction, longer if either repeats — then lets one send test the water and ramps back up slowly. On a tool without that, pause the automations on that account yourself and resume at lower volume. If your tool has no pause control, that's the more urgent problem than the block itself.

03

Cut volume and vary repetition when you resume

The patterns that trip policy blocks and messaging restrictions are sustained high volume, identical content repeated rapidly, and DMs that look like spam. Coming back at half your previous rate, with reply text that varies, addresses the first two. Add a keyword to any automation that DMs every commenter, and keep medical claims and regulated products away from purchase links. Turn off public comment auto-replies first if you run them — they're the most expendable part of the funnel and the most spam-flagged surface.

04

Reconnect and verify, don't assume

After any block, confirm the Instagram connection is genuinely healthy rather than just listed. A block and an expired token produce similar silence, and Instagram's long-lived tokens expire at 60 days regardless of anything else. Ruling the token out takes seconds and saves a day of misdiagnosis.

05

Pick a tool that pre-flights every send

The structural fix is upstream. Reachlee checks token validity, the messaging window, and live rate-limit usage before every single send, and defers rather than firing a request it expects to be rejected. That's what keeps you away from the ceiling rather than recovering from it, and it's a fair question to ask any vendor: what do you do when Meta says slow down?

The bottom line

Restrictions are a normal part of operating Instagram automation, and most of them are trivial — a documented rate limit with a stated recovery time that a competent tool never reaches. Three are worth real attention. A policy block, error 368 subcode 1404169, arrives with no recovery estimate and calls for stopping sends on that account rather than retrying. A messaging restriction shows up as most DMs refused with 2534022; it follows what you send, so the fix is the content and the keywords, plus an appeal in the app. And an action block on your personal Instagram account is a categorically different problem caused by session-based tools that hold your login. Official-API automation cannot produce that last outcome, which is the strongest practical argument for choosing it, and no amount of 'unlimited' marketing changes where the enforcement lands.

FAQ

Restrictions and blocks — FAQ

How long does an Instagram automation block last?

It depends which kind. A documented rate limit tells you: the X-Business-Use-Case-Usage response header includes estimated_time_to_regain_access in minutes, and that's the number to wait on. A policy block — error 368, subcode 1404169 — publishes nothing at all; our operating practice is to pause the account for 2 hours, test with one send, stretch the pause to 4, 8 and 24 hours if it repeats, and ramp back up slowly. A messaging restriction (most DMs refused with 2534022) lasts until Instagram lifts it, and an appeal under Settings → Account status in the app usually settles it within days. An action block on your personal account from session-based automation has no published duration either and is entirely at Instagram's discretion, which is the main reason to avoid causing one.

Will using an automation tool get my Instagram account banned?

It depends mostly on how the tool works. A tool built on Meta's official Instagram API holds an OAuth token with scoped permissions and never touches your login, so exceeding a limit produces a rejected API call rather than a checkpoint on your profile. A tool that drives a logged-in session to send DMs at machine speed is subject to Instagram's anti-bot enforcement instead, and that lands on your account as checkpoints, action blocks and suspensions. Ask any vendor which of the two they are. One thing no tool changes: what you send. Instagram can restrict an account's messaging over spammy or prohibited content whichever tool sent it, so keywords, varied copy and keeping regulated products away from purchase links still matter.

What does Instagram error 368 mean?

Error 368 with subcode 1404169 is a policy-level block on messaging for that account. Unlike a rate limit it carries no recovery estimate, so there's nothing to poll and nothing to wait on precisely — Meta simply stops accepting sends. The correct response is to stop sending on that account, wait a few hours before testing with a single send, and resume at lower volume; retrying into it is itself a negative signal. Reachlee does this automatically: 2 hours first, then 4, 8 and 24 if the block repeats. Meta doesn't publish the thresholds that trip it, and articles quoting an exact number are guessing.

How many DMs per day is safe?

Nobody can honestly give you a number, and that includes us. Meta publishes no daily DM cap for the official API — the documented limits are per-second and per-hour technical caps plus formula-based call budgets — and the policy-level thresholds that trip blocks are unpublished and appear to vary by account. What we can say from operating experience is that sustained high volume and rapidly repeated identical content are the two patterns associated with blocks. A tool that reads Meta's usage headers and defers before a breach protects you better than any daily number would.

Can I appeal an automation restriction?

It depends which kind. A messaging restriction on the account can be appealed in the Instagram app under Settings → Account status, and in the cases we've seen those appeals usually succeed within days, especially once the automations have a keyword and the content issue is fixed. Documented rate limits aren't appealable because they aren't punishments — they clear on their own when the rolling window recovers. Policy blocks come with no ticket path for messaging access, and the effective remedy is time plus a change in sending pattern. Action blocks on a personal account are reviewed by Instagram's own systems on their own schedule. Prevention still matters most: there's little to do after the fact except appeal, wait and behave differently.

Why did my comment replies stop but DMs still work?

That's subcode 1772111, which is specifically about public comment replies being flagged as spammy rather than about messaging. The two surfaces are policed separately, so DM sending continues while public replies are blocked. Our handling sets a 24-hour flag that stops public replies on the account and leaves DMs running. The usual trigger is identical reply text posted rapidly across many comments, so varying the text or simply turning public auto-replies off is the cheapest fix.

Is a failed send the same as a restriction?

No, and conflating them causes a lot of unnecessary panic. Most failed sends are per-recipient rejections that say nothing about your account's standing: the person blocks message requests, the comment is older than 7 days, the comment already used its one reply, the recipient deleted the thread. Those are normal background noise on any post. A restriction is account-wide and sudden — either everything stops at once, or most DMs start coming back refused with the same 2534022 across many different people. If your tool reports per-recipient skips as failures, a healthy account can look like a blocked one.

Error 2534022: recipient or account?

Does upgrading my plan raise the limits?

Not the ones that matter. The 24-hour messaging window, the one-private-reply-per-comment rule, the 7-day comment window and Meta's API budgets are platform rules that apply identically to every account and every tool regardless of what you pay anyone. A paid plan can buy you more connected accounts, more automations, or better analytics. It cannot buy messaging capacity from Meta, and a vendor implying otherwise is describing something they don't control.

Reply to every comment.
Capture every lead.
In your sleep.

Free to start, no card needed. Set up your first automation in under a minute.

Built on Meta's official API · Cancel anytime