> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Automation DM Sent but Not Delivered | Ayrshare Docs

> Why an Instagram automation can report a DM as sent while the recipient never receives it — the recipient's Message requests setting, private-reply mechanics, and what you can and cannot do about it.

If a [comment-triggered automation](/docs/apis/automations/overview) reports an activity `status: "sent"` but the person who commented says they never got the DM, this is almost always the recipient's Instagram privacy settings — **not** a bug in your automation or in Ayrshare.

<Note>
  **`sent` means Instagram accepted the message, not that it was delivered.** Instagram does not expose message delivery on any API surface. Ayrshare marks a `send_dm` action `sent` the instant Instagram accepts it; whether it actually reaches the recipient is decided by settings Ayrshare cannot read or change.
</Note>

## The recipient's "Message requests" setting decides delivery

Every Instagram user controls who may send them a message request under **Settings and activity → Messages and story replies → Message requests**. The options are roughly "Everyone", "Your followers", and "No one".

When your automation sends a DM to someone who has restricted message requests, Meta accepts the request, returns a **success response with a message ID**, and then **silently drops the message**. There is no error, no failure webhook, and no delivery/read signal — the drop is invisible at every API layer. Meta knows the message is undeliverable (its own app UI shows *"This account can't receive your message because they don't allow new message requests from everyone"*), but it does not expose that on the API.

| Recipient's Message requests setting                          | What happens                                                           |
| ------------------------------------------------------------- | ---------------------------------------------------------------------- |
| Everyone                                                      | Delivered — arrives as a **message request** the recipient must accept |
| Your followers (and the recipient does not follow the sender) | Accepted by Meta, then silently dropped                                |
| No one                                                        | Accepted by Meta, then silently dropped                                |

## An existing conversation overrides the setting

If the sender and recipient **already have a message thread** (for example, the recipient has DMed the account before), that existing conversation overrides the Message requests setting and the automation DM is delivered into the existing thread rather than as a new request. This is why the same automation can reach some commenters and not others, and why a recipient who messages the account first will then reliably receive automation DMs.

## How to recognize this

<ul class="custom-bullets">
  <li>The activity row shows <code>status: "sent"</code> with no <code>errorDetails</code>.</li>
  <li>The recipient reports no DM (and it is not sitting in their message-requests folder).</li>
  <li>It is intermittent across recipients — some receive the DM, others do not — with no pattern in your configuration.</li>
</ul>

This is a delivery outcome, not a failure state, so it will never appear as `failed`. A `failed` row means Instagram *rejected* the send and the reason is on `actionResults[].errorDetails` — that is a different situation (see [error codes](/docs/errors/errors-ayrshare)).

## What you can do

There is **no programmatic workaround** — no API, scope, or send shape can bypass a recipient's Message requests setting. What you can do:

<ul class="custom-bullets">
  <li>Set expectations up front: a comment-triggered DM only reaches people whose Instagram settings allow message requests, or who already have a conversation with your account.</li>
  <li>Encourage commenters to DM your account (or turn on message requests) if they want the follow-up — an inbound message opens the thread permanently.</li>
  <li>Consider a public reply to the comment as a fallback path for reaching everyone.</li>
</ul>

## How comment-triggered DMs are sent (private replies)

Comment-triggered automations deliver the DM through Instagram **private replies**, anchored to the comment itself. This is what lets the automation message a commenter you have never messaged before. The mechanics — and their limits — are worth knowing:

<ul class="custom-bullets">
  <li><strong>Comment-anchored 7-day window.</strong> The reply must be sent within 7 days of the comment. After that the window closes and the send fails with <a href="/docs/errors/errors-ayrshare#automation-private-reply-comment-dm-errors"><code>code: 484</code></a>.</li>
  <li><strong>One reply per comment, ever.</strong> Instagram allows only a single private reply per comment. A second attempt fails with <a href="/docs/errors/errors-ayrshare#automation-private-reply-comment-dm-errors"><code>code: 484</code></a> — Instagram reports "already replied" through the same shared error it uses for a closed window, so check <code>errorDetails</code> for which it was.</li>
  <li><strong>Arrives as a message request.</strong> Even a successfully delivered private reply lands in the recipient's message-requests folder and must be accepted — unless a conversation already exists.</li>
  <li><strong>Delivery still depends on the recipient's settings.</strong> Private replies remove the "must have messaged first" requirement, but they do <strong>not</strong> override the recipient's Message requests setting, which is the limitation described above.</li>
</ul>

## Related

<ul class="custom-bullets">
  <li><a href="/docs/apis/automations/overview">Automations API Overview</a> — trigger and action reference, activity statuses.</li>
  <li><a href="/docs/apis/messages/overview">Messages API Overview</a> — the DM privacy toggle and the Instagram 7-day messaging window.</li>
  <li><a href="/docs/errors/errors-ayrshare#automation-private-reply-comment-dm-errors">Automation private-reply error codes</a> — <code>483</code>–<code>488</code>.</li>
</ul>
