Instagram Messaging API · error code

Instagram error 10: This person cannot receive messages

Permanent - do not retryHTTP 403Recipient & delivery

Last verified against Meta for Developers - Messenger Platform error codes

What Instagram returns
This Person Cannot Receive Messages: This person isn't receiving messages from you right now.

What error 10 means

Code 10 with subcode 2018108 is documented on the Messenger Platform error page as "This Person Cannot Receive Messages: This person isn't receiving messages from you right now." It is the code-10-shaped member of the recipient-unavailability family: despite the permission-flavored code, the refusal is about the person on the other end, not about your app's grants. The person has blocked the account, restricted who can message them, or their account is in a state where delivery is not allowed.

Like 551 and 200/1545041, it is per-recipient and unfixable from the API side. The reason to keep it distinct in your logs is triage speed: seeing subcode 2018108 immediately rules out the two things engineers otherwise chase when they read "code 10" - the 24-hour window and missing permissions - both of which fail for every recipient, not one.

Why it happens

  • The recipient blocked the business account or restricted incoming messages.
  • The recipient's account is deactivated, suspended, or limited by Instagram.
  • Delivery is disallowed by the recipient's privacy settings for accounts they do not follow.
  • The send targeted a stale conversation whose participant is no longer reachable.

How to fix Instagram error 10

  1. 1Suppress the IGSID from all sends and mark the conversation unreachable.
  2. 2Confirm scope by sending the same payload to a healthy test recipient - success proves the app is fine.
  3. 3Do not route around the block with other contact surfaces; treat it as withdrawn consent.
  4. 4Clear the suppression only on a fresh inbound message from the person.

How to stop it recurring

Branch on error_subcode, not code, everywhere you handle code 10 - one switch statement prevents hours of misdirected debugging when a block masquerades as a permission failure. Track the 2018108/551 rate per audience segment as a consent-health metric. The full code-10 disambiguation table is in the troubleshooting guide, and the block-family siblings are 551 and 200/1545041.

Official reference: Meta for Developers - Messenger Platform error codes. See all Instagram error codes or the Instagram limits and quotas.

Related codes

Error 10 - quick answers

What does Instagram error 10 mean?

Code 10 with subcode 2018108 is documented on the Messenger Platform error page as "This Person Cannot Receive Messages: This person isn't receiving messages from you right now." It is the code-10-shaped member of the recipient-unavailability family: despite the permission-flavored code, the refusal is about the person on the other end, not about your app's grants.

How do I fix Instagram error 10?

1. Suppress the IGSID from all sends and mark the conversation unreachable. 2. Confirm scope by sending the same payload to a healthy test recipient - success proves the app is fine. 3. Do not route around the block with other contact surfaces; treat it as withdrawn consent. 4. Clear the suppression only on a fresh inbound message from the person.

Should I retry after error 10?

No. Retrying the same request produces the same error; the condition has to be fixed first. Treat it as a permanent failure for that message and surface it, rather than looping.

Stop debugging Instagram by hand

Connect the channel through Conferbot: tokens, webhooks and retries are handled, failures show as readable status.