Instagram API error codes for publishing

    Every Instagram publishing error code a scheduler meets, such as 2207042, 2207009 and 190: what it means, what to fix and which ones to retry.

    Updated · 3 min read · Prices and limits checked against the vendors' own pages and APIs on that date.

    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

    ErrorMeaningWhat to do
    Code 9, subcode 2207042Daily publishing limit reachedWait for the window to roll
    Code 9007, subcode 2207027Media not readyPoll status_code until FINISHED, then publish
    Code 36000 / 2207004Image over 8 MiBCompress the picture
    Code 36001 / 2207005Unsupported image formatSend a JPEG
    Code 36003 / 2207009Aspect ratio out of rangeCrop to between 3:4 and 1.91:1
    Code 36004 / 2207010Caption too long, or too many hashtags or mentionsAt most 2,200 characters, 30 hashtags and 20 mentions
    Code 352 / 2207026Unsupported video formatMP4 or MOV with the accepted codecs
    Code 9004 / 2207052Media URL could not be fetchedThe URL must be public, reachable by Meta and ASCII
    Code 24 / 2207006Media not foundOften a missing permission or an expired token
    Code 24 / 2207008Container does not exist or has expiredRetry briefly, then create a new container
    Code -1 / 2207032, -1 / 2207053Media creation or upload failedCreate a new container and retry
    Code 100 / 2207028Carousel with fewer than 2 or more than 10 itemsSend 2 to 10
    Code 25 / 2207050Account inactive, checkpointed or restrictedThe owner signs in to the Instagram app and resolves it
    Code 190Token expired or invalidReconnect the account
    Code 200 or 10Missing permissionAdd the scope and reconnect
    Codes 4, 17, 32, 613Rate limitingBack 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.

    Write it once. Let the rules be our problem.

    Preflight checks every post against each network's rules before it leaves, then publishes it to twelve networks. Free plan, no card.