Instagram Messaging API · error code

Instagram error 10: Message sent outside of allowed window

Policy / accountHTTP 403Messaging window

Last verified against Meta for Developers - Messenger Platform error codes

What Instagram returns
This message is sent outside of allowed window.

What error 10 means

This is Instagram's messaging-window refusal, and the single most-searched Instagram messaging error. Meta's error reference states it plainly: "Apps can only send a message to a customer within 24 hours of receiving the customer's message." The clock starts at the person's last inbound message and every automated send after it expires is rejected with code 10 and subcode 2534022. At send time the message string is usually the longer variant: (#10) Message failed to send because more than 24 hours have passed since the customer last replied to this account.

Nothing is broken. Your token is valid, your permissions are granted, the recipient exists, and the same payload would deliver fine inside the window. The type: OAuthException and code 10 make this look like the permission failure described under bare (#10), which is why the subcode matters: 2534022 is the window, no subcode is permissions. Retrying does nothing - the window only reopens when the person messages you again.

Instagram is stricter here than its sibling platforms. There are no re-engagement templates like WhatsApp's, and the Messenger message tags (ACCOUNT_UPDATE, CONFIRMED_EVENT_UPDATE, CUSTOMER_FEEDBACK) are documented as "Not available for Instagram Messaging API." The one sanctioned exception is the human_agent tag: a message from a human agent may be sent within 7 days of the user's message, and only after your app is approved for the Human Agent feature through App Review. Tagging automated messages with it is a documented policy violation.

What it looks like

{
  "error": {
    "message": "(#10) Message failed to send because more than 24 hours have passed since the customer last replied to this account.",
    "type": "OAuthException",
    "code": 10,
    "error_subcode": 2534022,
    "fbtrace_id": "AbCdEfGh1234"
  }
}

Why it happens

  • An automated reply, drip sequence, or follow-up fired more than 24 hours after the person's last inbound message.
  • Your system tracks the window from your last outbound message instead of the person's last inbound message, so the computed window is wrong.
  • A queued or retried send was delayed past the window boundary and executed after expiry.
  • A human handoff was needed but the send did not carry the human_agent tag, or the app was never approved for the Human Agent feature.
  • Story replies or comments were expected to reopen the window, but the person never actually sent a direct message event.

How to fix Instagram error 10

  1. 1Store the timestamp of every inbound messages webhook event per conversation, and compute the window from that value only.
  2. 2Gate every automated send on now - last_inbound < 24h; drop or park sends that miss the window instead of retrying them.
  3. 3For genuine human support beyond the window, apply for the Human Agent feature (App Dashboard > App Review > Permissions & Features > Human Agent), then send with "tag": "HUMAN_AGENT" within 7 days of the user's message.
  4. 4Design re-entry instead of re-engagement: ice breakers, story replies, and comment-triggered private replies all prompt a new inbound message that reopens the window.
  5. 5Use the private reply API for comments - it is allowed within 7 days of the comment and its window is independent of the DM window.

How to stop it recurring

Treat the window as a scheduling constraint, not an error to handle. Persist last_inbound_at per Instagram-scoped ID, check it before every send, and collect whatever you need from the person while the conversation is live. The full window rules, including the 7-day human-agent extension and the private-reply window, are tabulated in the Instagram limits reference, and the troubleshooting guide walks through telling this apart from the permission form of code 10.

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?

This is Instagram's messaging-window refusal, and the single most-searched Instagram messaging error. Meta's error reference states it plainly: "Apps can only send a message to a customer within 24 hours of receiving the customer's message." The clock starts at the person's last inbound message and every automated send after it expires is rejected with code 10 and subcode 2534022.

How do I fix Instagram error 10?

1. Store the timestamp of every inbound messages webhook event per conversation, and compute the window from that value only. 2. Gate every automated send on now - last_inbound < 24h; drop or park sends that miss the window instead of retrying them. 3. For genuine human support beyond the window, apply for the Human Agent feature (App Dashboard > App Review > Permissions & Features > Human Agent), then send with "tag": "HUMAN_AGENT" within 7 days of the user's message. 4.…

Stop debugging Instagram by hand

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