YouTube errors

YouTube upload errors: what each code means and what to do

A YouTube upload through Status 200 Uploads can be refused by us before it starts, or by YouTube while the video uploads in the background. Our refusals carry a fixed code, such as youtube_tags_too_long or MEDIA_TOO_LARGE, with a sentence saying what to do. YouTube's own refusals, such as uploadLimitExceeded, are written into History with YouTube's reason. This page lists both, with whether sending the same request again can work.

  • Checked on

YouTube errors at a glance

How to read an error

Every YouTube upload runs in the background. A request that passed our checks answers 202 with data.status processing, a job_id and a post_id, and the video uploads after the answer. That 202 is not a failure and not yet a success: History shows how it ended, and GET /api/v2/posts/{id} reads it back.

YouTube refuses some things only once an upload has begun, such as tags that are too long. We check those first, so a long transfer is never thrown away for them. Every refusal is JSON with error.code and error.message; switch on the code.

A title or description we shortened, or the < and > we removed, is not an error. The 202 answer lists it in warnings (title_shortened, description_shortened, characters_removed). On YouTube these notes come only in the answer that sent or scheduled the post, so keep them from that answer.

Checked before the upload starts

These refusals come before anything is recorded or sent. They leave no failed post in History and cost nothing: fix the request and send it again.

YouTube: Checked before the upload starts
HTTPCodeWhat it meansWhat to doSend it again?Where it shows
400youtube_tags_too_longThe tags add up to more than 500 characters as YouTube counts them (a tag with a space counts its quotation marks too). The answer gives tags_length, max_tags_length and remove_tags.Drop the tags remove_tags names, or shorten them, and send it again.never No. The same request cannot work: change it first.API answer
400api_errorThe post has no video. A YouTube post through us is one video.Add the video's mediaID or its address and send it again.never No. The same request cannot work: change it first.API answer
422media_failedThe video's import into your media library failed, so there is nothing to upload. error.file_id names the file.Import or upload the video again and post it by its new mediaID.never No. The same request cannot work: change it first.API answer, AI app
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-02T15:00:00Z.never No. The same request cannot work: change it first.API answer

Starting the upload

Once the request passed the checks above, the post has its row in History, so these refusals show there as failed posts.

YouTube: Starting the upload
HTTPCodeWhat it meansWhat to doSend it again?Where it shows
413MEDIA_TOO_LARGEThe video is larger than 5 GB, the largest file Status 200 Uploads takes for YouTube.Upload a smaller export of the video.never No. The same request cannot work: change it first.API answer, History, AI app
500platform_errorThe upload could not start and the answer names no code of its own. The message says why: when the YouTube sign-in expired and cannot be renewed, or the channel is not connected, it says to connect YouTube again.Read the message. If it asks you to reconnect, connect YouTube again under Connections and publish it again; otherwise send it once more with the same Idempotency-Key.resend_once_with_key Once, with the same Idempotency-Key.API answer, History

Accepted, not failed

These answers are 202. The video is waiting and goes out on its own, so sending it again could upload it twice.

YouTube: Accepted, not failed
HTTPCodeWhat it meansWhat to doSend it again?Where it shows
202scheduledpost.scheduledFor is more than a minute ahead: the video is held and uploaded when it is due.Nothing to do. Cancel it by its scheduled_post_id if you change your mind.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 video 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

Codes any post can get

Not special to YouTube: 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

YouTube's own errors

YouTube's own refusals come while the video uploads in the background, after our answer. They are written into History as YouTube's message, with YouTube's reason, such as uploadLimitExceeded, in brackets. The reasons below are YouTube's; what they mean comes from Google's YouTube Data API pages, read on .

uploadLimitExceededAs the upload starts
The channel reached its own daily upload limit. YouTube counts uploads from desktop, mobile and the API together, and the limit can vary by country or channel. [Y8, Y16]
Upload it again the next day. API quota has nothing to do with this limit.
quotaExceededAs the upload starts
The API project ran out of its daily quota. The project is ours, not your channel. Since 1 June 2026 uploads have a quota bucket of their own. [Y8, Y1]
Upload it again later.
youtubeSignupRequiredAs the upload starts
The Google account has no YouTube channel to upload to. [Y8]
Create the channel on YouTube, then connect YouTube again under Connections.
insufficientPermissionsAs the upload starts
The sign-in does not allow uploading videos. [Y8]
Connect YouTube again and allow everything the sign-in asks for.
forbiddenPrivacySettingAs the upload starts
YouTube does not allow the privacy setting asked for. [Y8]
Choose another privacy status (public, unlisted or private) and publish it again.
invalidTitleAs the upload starts
The title is empty or not valid. [Y8, Y2]
Send a title. We already shorten a long title and remove < and >, so look for characters YouTube does not take.
invalidDescriptionAs the upload starts
The description is not valid. [Y8, Y2]
Check the description for characters YouTube does not take.
invalidTagsAs the upload starts
The tags are not valid. [Y8, Y2]
Check the tags; we already refuse a list that is too long before the upload starts.
invalidCategoryIdAs the upload starts
The category id is not a valid YouTube category. [Y8]
Use a category from the account's posting options, or leave it out.

YouTube error questions

More on YouTube

YouTube's pages this rests on

Sources read on 15 October 2026.

  1. Y1YouTube Data API: Videos: insert (last updated 2026-10-08 UTC)
  2. Y2YouTube Data API: Videos resource (last updated 2026-10-08 UTC)
  3. Y8YouTube Data API: Errors (last updated 2026-09-14 UTC)
  4. Y16YouTube Help: Upload YouTube videos (no date shown)

Start posting to YouTube

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