Why didn't my DM send?

Start with the delivery's status in Analytics or the automation's delivery list — it tells you which of the four failure families you're in.

The statuses, decoded

  • Waiting — the opening DM went out; Cookping is waiting for the follower to tap the button before sending the recipe link (that tap is Instagram-required consent). Not an error.
  • Expired — the 24-hour messaging window closed before a compliant send was possible. Cookping never sends late; this is the guardrail working.
  • Skipped — the delivery was intentionally not made: most commonly the same follower already received this recipe for this comment (idempotency), or a plan limit applied.
  • No delivery at all — the comment never matched. See below.

When comments don't match

  1. Is the automation active? Draft and paused automations don't process comments.
  2. Right post? Automations watch one specific post or Reel. A commenter on a different post — or on a share — won't trigger it.
  3. Keyword present? Matching is case-insensitive ("Recipe" = "RECIPE"), but the keyword must actually appear in the comment text. Emojis around it are fine.
  4. Fresh post not synced? If the post was published minutes ago, hit Refresh media in Settings and check the automation targets the right media.

When the connection is the problem

If Settings shows the account Disconnected or lists a permission error (for example missing permissions: instagram_manage_messages), nothing can send until you reconnect. See Connect your Instagram account. Deliveries that arrive while disconnected can still expire — the 24-hour clock doesn't pause.

When it's a plan limit

Plans are priced by active contacts — unique followers DM'd this month. At 100% of your allowance, new contacts can't be messaged until the month resets or you upgrade; followers already messaged this month keep receiving normally. The dashboard banner warns at 80%. Details in Plans & limits.

Still stuck?

Contact us with the automation name and the approximate comment time — the delivery record includes the exact reason for every skip and expiry.