Results and optimisation · 2 min read

Why a DM did not arrive

Understand queued, expired, failed, and uncertain sends, and find the next check.

Check the history first

A successful preview or saved rule is not a sent message. Find the specific run in the history and compare its account, time, and post. Ask the recipient to check message requests too: a new conversation from an account they do not follow may appear there. A confirmed send in DMFLOW means Meta returned a message confirmation, rather than proof that the person read it.

Understand the statuses

  1. Queued: the message is waiting for an eligible attempt. The reason may be the monthly allowance or an API rate-limit delay. Avoid creating a duplicate.
  2. Expired: the seven-day window for a comment's first private reply or the 24-hour window for an ordinary DM has closed. Raising the monthly allowance does not reopen that window.
  3. Cancelled: check whether the rule was disabled, the account was disconnected or changed, or the contact was deleted. These safeguards are checked again immediately before sending.
  4. Failed: read the reason. Invalid authorization needs a renewed connection; a Meta rejection is not confirmed delivery.
  5. Uncertain: the request may have been accepted without a usable confirmation. DMFLOW does not automatically repeat it, to avoid sending twice. Check the Instagram conversation manually first.

Did a later step stop?

A comment's initial private reply does not open an ordinary messaging conversation by itself. The person must actually respond. Opening a website link is not such a response. A follow check or email question can also wait for its condition; an unknown following result does not count as success.

If the issue continues, share the test time and visible history reason with the owner. Never share an access token.