Threads errors

Threads posting errors: what each code means and what to do

A Threads post through Status 200 Uploads can be refused by us before Threads is called, or by Threads while it creates, processes or publishes the post. Our refusals carry a fixed code, such as api_error for text that is too long, with a sentence saying what to do. Threads' own refusals arrive as platform_error, with Threads' reason, such as INVALID_DURATION, in the message. This page lists both, with whether sending the same request again can work.

  • Checked on

Threads errors at a glance

How to read an error

Threads text has a hard limit. Where most networks get a warning about long text in a dry run, a Threads post with longer text is refused with 400 api_error before Threads is called, so nothing is cut without you knowing. The message gives the text's length and the limit.

Threads makes a post in steps: it creates a container for the text and file, processes the file, then publishes. We wait for those steps inside the request, so a refusal at any of them comes back in the answer as HTTP 500, code platform_error, with Threads' own words in the message. History shows the same message.

A video Threads is still processing after about a minute and a half is not published, and the message says so. Larger videos can take longer than one request may wait: a smaller or shorter file has a better chance.

Checked before Threads is called

These refusals come before anything reaches Threads. The text and file rules leave no failed post in History and do not use a post of your plan.

Threads: Checked before Threads is called
HTTPCodeWhat it meansWhat to doSend it again?Where it shows
400api_errorThe post has neither text nor a file, the text is longer than Threads takes, or the post has more than 20 files. Nothing was sent to Threads.Add the missing text or file, shorten the text, or send fewer files, and send it again.never No. The same request cannot work: change it first.API answer
400bad_requestA media address is not an http:// or https:// address. error.field names it, and no post is recorded.Send a full address that starts with https://, or upload the file and send its mediaID.never No. The same request cannot work: change it first.API answer
413MEDIA_TOO_LARGEThe file is larger than Threads takes: videos up to 1 GB. The answer names the limits in max_video_bytes and max_image_bytes.Send a smaller file. Threads also limits a video to 5 minutes.never No. The same request cannot work: change it first.API answer, History, AI app

When Threads refuses the post

Everything Threads refuses comes back under one code, with Threads' words in the message. Read the message before sending again.

Threads: When Threads refuses the post
HTTPCodeWhat it meansWhat to doSend it again?Where it shows
500platform_errorThreads refused the post while creating, processing or publishing it, the video was still processing after about a minute and a half, or the Threads sign-in expired and could not be renewed. The message says which, with Threads' own reason.Read the message. Reconnect Threads when it asks you to; fix the file when Threads names it; otherwise send it once more with the same Idempotency-Key.resend_once_with_key Once, with the same Idempotency-Key.API answer, History

Scheduled and queued posts

A Threads post can go out now, at a time you set, or the next day when your plan's posts for the day are used. A 202 answer here is not a failure: the post was accepted.

Threads: Scheduled and queued posts
HTTPCodeWhat it meansWhat to doSend it again?Where it shows
400scheduled_for_invalidpost.scheduledFor has no time zone, is not a date and time, or is more than 365 days ahead; error.reason says which.Send an ISO 8601 time with its zone, such as 2026-11-02T18:00:00+01:00.never No. The same request cannot work: change it first.API answer
202scheduledThe time is more than a minute ahead: the post is held and published on Threads when it is due.Nothing to do. Cancel it by its scheduled_post_id if plans change.not_a_failure No: it was accepted and goes out on its own.API answer
202queued_for_next_dayYour plan's posts for the day were used, so the post was queued for the next day instead of failing.Do not send it again. Cancel it by its scheduled_post_id if you no longer want it.not_a_failure No: it was accepted and goes out on its own.API answer, AI app
400media_not_availableA scheduled post's file answers "not found" at its address: deleted, moved, or past the 7 days a library file is kept.Upload the file again and schedule the post with its new mediaID.never No. The same request cannot work: change it first.API answer, AI app

Codes any post can get

Not special to Threads: the request, the plan and the file in your library. The API reference lists every code.

Codes any post can get
HTTPCodeWhat it meansWhat to doSend it again?Where it shows
401unauthorizedNo API key, or a key that is not active.Send Authorization: Bearer with an active rl_ key from the API page.never No. The same request cannot work: change it first.API answer
403account_not_foundThe accountId is not one of your profiles. The answer lists yours.Use a profile id or "@name" from the list.never No. The same request cannot work: change it first.API answer, AI app
404media_not_foundThe mediaID is not in your library: never imported, deleted, or removed after 7 days.Import or upload the file again and use the new id.never No. The same request cannot work: change it first.API answer, AI app
409media_processingThe file is still importing.Wait the Retry-After seconds and send the same request.wait_and_resend Yes: the same request after a wait (Retry-After, when the answer gives one).API answer, AI app
429rate_limitedLess than 20 seconds since your last post to the same network.Wait the Retry-After seconds and send the same request.wait_and_resend Yes: the same request after a wait (Retry-After, when the answer gives one).API answer, AI app
429daily_limit_reachedYour plan's posts for today are used up.Post after resets_at, or move to a larger plan.after_reset Not before the time in resets_at.API answer, AI app
429monthly_limit_reachedThe Free plan's posts for this month are used up.Post after resets_at, or move to a paid plan.after_reset Not before the time in resets_at.API answer, AI app
422idempotency_key_reusedThe Idempotency-Key was already used with another body.Use a new key for a new post.never No. The same request cannot work: change it first.API answer
500server_errorOur side failed.Send it once more with the same Idempotency-Key; without one, check History first.resend_once_with_key Once, with the same Idempotency-Key.API answer, AI app
502upstream_unavailableThe request never left. Nothing was posted.Send the same request again after a short wait.wait_and_resend Yes: the same request after a wait (Retry-After, when the answer gives one).API answer

Threads' own errors

Threads' own refusals reach you inside platform_error's message, and History shows the same words. When Threads fails to process a file, the message reads "Media processing failed:" followed by Threads' reason. The reasons below are Threads'; what they mean comes from Meta's Threads API pages, read on .

INVALID_DURATIONWhile Threads processes the video
The video's length is outside what Threads takes: up to 300 seconds (5 minutes). [TH8, TH2]
Trim the video and publish it again.
INVALID_FRAME_RATEWhile Threads processes the video
The frame rate is outside what Threads takes: 23 to 60 frames a second. [TH8, TH2]
Export the video at 30 frames a second and publish it again.
INVALID_ASPEC_RATIOWhile Threads processes the file
The aspect ratio is outside what Threads takes. Threads spells the code this way. Its video range is 0.01:1 to 10:1, with 9:16 recommended. [TH8, TH2]
Crop the video or image to a common ratio such as 9:16 and publish it again.
INVALID_BIT_RATEWhile Threads processes the video
The video's bit rate is outside what Threads takes: variable bit rate up to 100 Mbps. [TH8, TH2]
Export the video at a lower bit rate and publish it again.
INVALID_AUDIO_CHANNELSWhile Threads processes the video
Threads does not take the audio's channels. INVALID_AUDIO_CHANNEL_LAYOUT is the same kind of refusal about their layout. [TH8, TH2]
Export the audio as AAC at no more than 48 kHz, with an ordinary channel layout, and publish it again.
FAILED_PROCESSING_VIDEOWhile Threads processes the video
Threads could not process the video. FAILED_PROCESSING_AUDIO is the same for its sound. [TH8, TH2]
Export the video again as MP4 (H.264 or HEVC) and publish it again.
FAILED_DOWNLOADING_VIDEOWhile Threads fetches the video
Threads could not download the video from its address. [TH8]
Use an address that is public and answers with the file, or upload the video to your media library and post it by its mediaID.

Threads error questions

More on Threads

Threads' pages this rests on

Sources read on 15 October 2026.

  1. TH1Threads API: Posts (no date shown)
  2. TH2Threads API: Overview (limits and media specifications) (no date shown)
  3. TH8Threads API: Troubleshooting (no date shown)
  4. TH9Threads API: Changelog (no date shown)

Start posting to Threads

Threads is on every plan, Free included. This page was checked on 26 October 2026.