Blog

Why your scheduled post failed, and what the error actually means

Scheduled posts fail for a small number of reasons, and almost all of them are fixable in a couple of minutes once you know which one you have hit. How to tell them apart.

A scheduled post that does not publish has failed for a reason the platform gave, and most tools do not show it to you. You get "failed to publish", which is the tool telling you it received an error, not the error. Almost every failure falls into one of five families, and each one has a different fix.

This is written for Facebook Pages and Instagram accounts, because those are the two whose rejection reasons I have the most of. The families generalise; the specifics are dated below.

First: find the actual error, not the summary

Before anything else, get the platform's own message. Wherever your scheduler shows post history or a log, the useful string is the one that came back from the platform — it usually names a subject ("permission", "media", "rate", "session") even when the surrounding text is unhelpful. If your tool does not surface it anywhere, that is worth knowing about the tool, and in the meantime you can usually reproduce the failure by posting the same content manually in the platform's own app, where you will get a plainer message.

Everything below assumes you have that string, or the symptom that stands in for it.

Family 1: the connection expired

This is the most common cause by a wide margin, and it has nothing to do with your content.

Access to a social account is granted by a token, and tokens expire. They also get invalidated early by things that have nothing to do with your scheduler: changing your password, a security review on the account, revoking an app's access, someone removing you from the Page's admin list, or a platform-side session reset.

Symptoms: every post to one account fails while other accounts are fine; the failure starts on a specific date and nothing succeeds after it; the error mentions a session, a token, or authorization.

Fix: reconnect the account in your scheduler. You will be sent to the platform's own sign-in screen to re-grant access. Nothing about your queue needs rebuilding.

Prevention: reconnect deliberately after any password change or admin change, rather than waiting to discover it through a missing post. If your tool shows a connection health indicator, that is what it is for.

Family 2: the account is the wrong type, or the permission was never granted

Publishing through an API is not the same as being logged in. Each platform requires a specific account type and a specific set of granted permissions, and a connection can succeed for reading while lacking the ability to publish.

Symptoms: the account connects fine, analytics appear, and only publishing fails; the error mentions a permission or a capability; it fails from the first attempt and has never worked.

Fix: confirm the account type is the one the platform's publishing API requires — on Instagram, publishing through an API requires a professional (business or creator) account linked appropriately, not a personal one. Then reconnect and make sure every permission the consent screen asks for is granted; declining one at the sign-in screen is easy to do by accident and produces exactly this failure.

Checked 2026-08-27. Account-type requirements are set by the platforms and do change.

Family 3: the media was rejected

The platform accepted the request and refused the file.

Symptoms: it fails immediately, only for certain posts, and text-only posts to the same account go out fine.

Common causes, all of them ordinary:

  • Aspect ratio outside the accepted range. Very tall or very wide images are refused rather than cropped.
  • File size or dimensions over the limit, most often on video.
  • Codec or container the platform will not take. A file that plays perfectly on your laptop can still be an unsupported combination.
  • Duration — too long, or in some formats too short.
  • A mixed carousel that combines media types in a way the platform does not allow.

Fix: re-export the asset inside the platform's stated limits and re-queue it. If you cannot tell which limit you crossed, the fastest diagnostic is to try posting the same file manually; the app usually says which one plainly.

Prevention: produce assets at the sizes the platforms accept in the first place. This is a boring, high-value habit and it removes most of this family permanently.

Family 4: a rate limit or a publishing cap

Platforms cap how much an application can publish on your behalf in a rolling window, and Instagram in particular has a documented cap on API-published posts per account per 24 hours.

Symptoms: the first several posts of a batch go out and later ones fail; failures cluster at the busiest part of your schedule; the error mentions a limit; everything works again some hours later without you changing anything.

Fix: spread the schedule. If you are publishing near a cap, moving posts across a wider window costs you nothing and removes the failure entirely.

Worth knowing: hitting a rate limit is not a penalty and does not mark your account. It is a queueing constraint. Retrying immediately, repeatedly, is the only way to turn it into a worse problem.

Family 5: the content was refused on policy grounds

Least common, most alarming, and usually the least ambiguous — the error names a policy or a community standard.

Symptoms: one specific post fails while everything around it succeeds; the message references content rather than technology.

Fix: read the platform's stated reason and use its appeal route if you believe it is wrong. Do not re-queue the identical asset repeatedly; repeated attempts at refused content are their own problem.

One thing not to assume: a single refusal is not evidence that your account is suppressed. It is evidence that one post was refused.

The quick table

SymptomMost likely familyFirst thing to try
All posts to one account, starting on a dateExpired connectionReconnect the account
Only publishing fails; reading worksPermission or account typeCheck account type, re-grant permissions
Only posts with media failMedia rejectedRe-export inside the platform's limits
Later posts in a batch failRate limit or capSpread the schedule
One post, message mentions policyPolicyRead the reason, appeal if wrong

What good tooling does about this

Three things, and they are worth checking for in whatever you use:

  1. It shows you the platform's actual message, not a generic failure. The difference between "failed" and a message naming a permission is the difference between an afternoon and two minutes.
  2. It fails one post, not the queue. A rejected asset should not stop the twelve posts behind it.
  3. It tells you a connection is dying before a post does. An expired token is knowable in advance and is the failure most worth catching early.

SupahPost surfaces the platform's own rejection reason on the post rather than replacing it with a generic error, which is the reason this post could be written from the specifics rather than from guesswork. That is not a trick — it is just passing the message through instead of swallowing it, and any tool can do it.

All platform behaviour described here was checked on 2026-08-27. Limits, account-type rules and error wording are set by the platforms and change without notice; if something here has drifted, tell us at support@supahpost.com and it will be corrected.

SupahPost

Make the content. Fill the calendar. Know what worked.

SupahPost is a content studio, scheduler, and analytics workspace for people who run social accounts at volume. Publishing is Facebook, Instagram, TikTok, YouTube and X.

Start free

7-day free trial · $0 due today · cancel anytime

All posts · RSS