Instagram Platform

Error Codes

Updated: Jun 2, 2026
This document describes the error messages that can be returned by the Instragram API. The sample response below shows an example of code 3600 and subcode 2207004 with the subsequent error codes defined.

Sample Response

{
  "error":
    {
      "message": "The image size is too large.",
      "type": "OAuthException",
      "code": 36000,
      "error_subcode": 2207004,
      "is_transient": false,
      "error_user_title": "Image size too large",
      "error_user_msg": "The image is too large to download. It should be less than 8 MiB.",
      "fbtrace_id": "A6LJylpZRKw2xKLFsAP-cJh"
   }
 }

Error Codes Defined

HTTP Status Code Code Subcode User Message Recommended Solution
400
-2
2207003
It takes too long to download the media.
A timeout occured while downloading the media. Try again.
400
-2
2207020
The media you are trying to access has expired. Please try to upload again.
Generate a new container ID and use it to try again.
400
-1
2207001
Instagram server error. Try again.
400
-1
2207032
Create media fail, please try to re-create media
Failed to create a media container. Try again.
400
-1
2207053
unknown upload error
An unknown error occured during upload. Generate a new container and use it to try again. This should only affect video uploads.
400
1
2207057
Thumbnail offset must be greater than or equal to 0 and less than video duration, i.e. {video-length}
The thumbnail offset you entered is out of bounds for the video duration. Add the right offset in milliseconds.
400
4
2207051
We restrict certain activity to protect our community. Tell us if you think we made a mistake.
The publishing action is suspected to be spam. We restrict certain activity to protect our community. Let us know if you can determine that the publishing actions is not spam.
400
9
2207042
You reached maximum number of posts that is allowed to be published by Content Publishing API.
The app user has reached their daily publishing limit. Advise the app’s user to try again the following day.
400
24
2207006
The media with {media-id} cannot be found
Possible permission error due to missing permission or expired token. Generate a new container and use it to try again.
400
24
2207008
The media builder with creation id = {creation-id} does not exist or has been expired.
Temporary error publishing a container. Try again 1–2 times in the next 30 seconds to 2 minutes. If unsuccessful, generate a new container ID and use it to try again.
400
25
2207050
The Instagram account is restricted.
The app user’s Instagram Professional account is inactive, checkpointed, or restricted. Advise the app user to sign in to the Instagram app and complete any actions the app requires to re-enable their account.
400
100
2207023
The media type {media-type} is unknown.
The media type entered is not one of the expected media types. Please enter the correct one.
400
100
2207028
Your post won't work as a carousel. Carousels need at least 2 photos/videos and no more than 10 photos/videos.
Try again using an acceptable number of photos/videos.
400
100
2207035
Product tag positions should not be specified for video media.
Videos do not support X/Y coordinates. Disallow X/Y coordinates with videos.
400
100
2207036
Product tag positions are required for photo media.
Image product tags must include X/Y coordinates. Require X/Y coordinates for images.
400
100
2207037
We couldn't add all of your product tags. The product ID may be incorrect, the product may be deleted, or you may not have permission to tag the product.
One or more of the products being used to tag the item is invalid (deleted, rejected, app user lacks permission, product ID is invalid, etc.). Get the app user’s catalogs and eligible products again and allow the app user to only use those product IDs when tagging.
400
100
2207040
Cannot use more than {max-tag-count} tags per created media.
The app user exceeded the maximum number (20) of @ tags. Advise user to use fewer @ tags.
400
352
2207026
The video format is not supported. Please check spec for supported {video} format
Unsupported video format. Advise the app user to upload an MOV or MP4 (MPEG-4 Part 14). See Video Specifications.
400
9004
2207052
The media could not be fetched from this uri: {uri}
The media could not be fetched from the supplied URI. Advise the app user to make sure the URI is valid and publicly available.
400
9007
2207027
The media is not ready for publishing, please wait for a moment
Check the container status and publish when its status is FINISHED.
400
36000
2207004
The image is too large to download. It should be less than {size}.
Image exceeded maximum file size of 8MiB. Advise the user to try again with a smaller image.
400
36001
2207005
The image format {current-image-format} is not supported. Supported formats are: {format}.
Possible permission error due to missing permission or expired token. Generate a new container and use it to try again.
400
36003
2207009
The submitted image with aspect ratio {submitted-ratio} cannot be published. Please submit an image with a valid aspect ratio.
The image’s aspect ratio does not fall within our acceptable range. Advise the app user to try again with an image that falls withing a 4:5 to 1.91:1 range.
400
36004
2207010
The submitted image's caption was {submitted-caption-length} characters long. The maximum number of characters permitted for a caption is {maximum-caption-length}. Please submit media with a shorter caption.
The user exceeded the maximum amount of characters for a caption. Advise user to use a shorter caption. Maximum 2,200 characters, 30 hashtags, and 20 @ tags.
400
100
9050
Provide either user_id or ig_user_id, not both.
/ig_audio received both user_id and ig_user_id. Send only one; prefer ig_user_id.
400
100
9052
Missing or invalid purpose for product=ADS.
Set purpose=AUDIO_COPYRIGHT_REPLACEMENT, currently the only supported sub-use case for product=ADS.
400
100
9056
Missing required parameter audio_replacement_mode.
Send audio_replacement_mode as one of auto, search, or default.
400
100
9057
Invalid audio_replacement_mode value.
Use one of auto, search, or default (case-insensitive).
400
100
9058
Missing required parameter search_query.
search_query is required when audio_replacement_mode=search. Append a search term.
400
100
9060
The search_query parameter is only valid when audio_replacement_mode=search.
Drop search_query in auto/default modes, or set audio_replacement_mode=search.
400
100
9054
The ig_media_id parameter is required.
Provide the IG media FBID (from /me/media) of the Reel whose copyrighted music needs replacing.
400
100
9062
The supplied ig_media_id refers to a non-Reel media.
Audio swap discovery supports Reels only. Provide the FBID of a Reel.
400
100
9055
This media does not contain copyrighted licensed music.
Audio swap discovery is only available for Reels with copyrighted music. Choose a Reel with a copyright issue.
400
100
9063
The supplied partnership_ad_code is invalid or expired.
Generate a valid partnership ad code and retry.
400
100
9064
The supplied partnership_ad_code does not match the ig_media_id.
Use a partnership_ad_code generated for the same media as ig_media_id.
403
200
The calling app is missing the ads_management permission for the target.
Request and obtain the ads_management permission for the target user, then retry.
403
10
9053
Ads audio swap discovery is not yet available.
This feature is in limited release. Access is gated; reach out to your Meta partner contact.