Instagram's publishing API answers a refused post with an error code and, for media problems, a subcode. Most are about the file or the caption, a few about the account or the token, and one is a daily limit that clears by itself. This page lists the codes a scheduler meets, what each means and what to do, following Meta's error-code reference for content publishing. All of them come back as HTTP 400.
The codes
| Error | Meaning | What to do |
|---|---|---|
| Code 9, subcode 2207042 | Daily publishing limit reached | Wait for the window to roll |
| Code 9007, subcode 2207027 | Media not ready | Poll status_code until FINISHED, then publish |
| Code 36000 / 2207004 | Image over 8 MiB | Compress the picture |
| Code 36001 / 2207005 | Unsupported image format | Send a JPEG |
| Code 36003 / 2207009 | Aspect ratio out of range | Crop to between 3:4 and 1.91:1 |
| Code 36004 / 2207010 | Caption too long, or too many hashtags or mentions | At most 2,200 characters, 30 hashtags and 20 mentions |
| Code 352 / 2207026 | Unsupported video format | MP4 or MOV with the accepted codecs |
| Code 9004 / 2207052 | Media URL could not be fetched | The URL must be public, reachable by Meta and ASCII |
| Code 24 / 2207006 | Media not found | Often a missing permission or an expired token |
| Code 24 / 2207008 | Container does not exist or has expired | Retry briefly, then create a new container |
| Code -1 / 2207032, -1 / 2207053 | Media creation or upload failed | Create a new container and retry |
| Code 100 / 2207028 | Carousel with fewer than 2 or more than 10 items | Send 2 to 10 |
| Code 25 / 2207050 | Account inactive, checkpointed or restricted | The owner signs in to the Instagram app and resolves it |
| Code 190 | Token expired or invalid | Reconnect the account |
| Code 200 or 10 | Missing permission | Add the scope and reconnect |
| Codes 4, 17, 32, 613 | Rate limiting | Back off; they are measured over an hour |
Which ones to retry
- Retry later: 2207042 (daily limit), the rate-limit codes, and 2207027 (media not ready, which clears when processing ends).
- Fix the file, then retry: the 3600x and 22070xx codes about size, format, ratio, caption and carousel count. Retrying unchanged repeats the failure.
- Fix the account: 190, 200, 10 and 2207050 need the owner. Retrying does nothing until the token, scope or account state is repaired.
When the container says ERROR
A container can finish with status_code ERROR. The status field then holds a subcode that can be looked up in Meta's reference. A reason that Meta names is the file's fault and is permanent. A bare "unknown" error is usually a dropped transcode on Meta's side and is worth one retry, which is also how Preflight handles it.
How Preflight avoids most of them
Before anything is uploaded, the composer checks the caption length, the hashtags and mentions, the ratio, the Reel's length and frame rate, the story's size and the carousel's item count. A picture that is not a JPEG or is over 8 MB is converted once. The rules behind each code are on the Instagram limits page, the publishing flow on publishing to Instagram through the API and the daily cap on the Instagram API rate limit. Account problems are in why social accounts disconnect.
Codes and meanings follow Meta's error-code reference for the Instagram content publishing API; the retry advice is Preflight's behaviour, checked 2 November 2026.
Questions people ask
- What does Instagram API error 2207042 mean?
- It is code 9 with subcode 2207042: the account reached its daily publishing limit. It clears when the rolling 24-hour window moves on.
- What does error 2207009 mean on Instagram?
- The picture's aspect ratio is outside the accepted range. Instagram takes 3:4 to 1.91:1 for feed pictures.
- Why does Instagram say media is not ready?
- Code 9007 with subcode 2207027 means the container is still processing. Poll the status until it is FINISHED, then publish.
- Which Instagram API errors should I not retry?
- Token and permission errors (190, 200, 10) and an inactive account (2207050) need the owner to fix them first, and file errors need a corrected file.