Media Won't Send in an Automated DM
The text part of the DM arrives and the attachment doesn’t, or the whole message fails. Instagram returns “upload attachment failure”, which covers everything from an oversized file to a format it won’t accept.
1. Check the file against the limits
Section titled “1. Check the file against the limits”Most failures are here. The full media reference has the detail; the ceilings are:
| Type | Formats | Max size |
|---|---|---|
| Image | PNG, JPG, GIF | 8 MB |
| Video | MP4, MOV | 25 MB |
| Audio | AAC, M4A, WAV | 25 MB |
| Document | 25 MB |
GIFs go through as images, so they get the 8 MB ceiling, not 25 MB. A long loop exported as a GIF blows past it easily — export it as MP4 instead and it gets the video allowance.
Nothing else is accepted. WebP, HEIC, AVI, MKV, DOCX and ZIP will fail however small they are. Convert to a format on the list.
2. Re-upload the file
Section titled “2. Re-upload the file”An upload that was interrupted leaves a media reference that looks fine in the editor and fails at send time. Remove the attachment, re-add it, and republish.
This is worth doing before anything else if the automation used to work and started failing without you changing it — media references don’t always survive account reconnection.
3. Compress rather than trim
Section titled “3. Compress rather than trim”A 30 MB video isn’t a good DM attachment even if it fit. Under 25 MB is the hard limit, but well under it sends faster and fails less. Re-encode at a lower bitrate rather than cutting the content.
Images are the same story: an 8 MB PNG screenshot is usually a 400 KB JPG with no visible difference.
4. Check it’s not the rate limit
Section titled “4. Check it’s not the rate limit”Instagram allows 10 DMs per second carrying audio or video, against 100 per second for text — media-heavy automations hit their ceiling ten times sooner. During a spike, media messages are the first to be throttled, so a video automation on a viral post will look slow and patchy while a text one alongside it runs fine. That’s the queue protecting the account, not a broken attachment.
5. Check the carousel
Section titled “5. Check the carousel”Carousels cap at 10 cards, and every card needs its image, its title (80 characters) and its button label (20 characters). One incomplete card fails the whole message, and the card that’s missing something isn’t always the one you were editing last — check all of them.