Education

Why scheduled posts fail, and what a scheduler owes you when they do

Expired tokens, upload quotas, unsupported formats. The failures are boring and predictable — silence about them is the real problem.

Why scheduled posts fail, and what a scheduler owes you when they do

A scheduled post that fails quietly is worse than no scheduler at all. You believed it went out. You planned the next one around it. You find out on Thursday that Monday never happened.

The failures themselves are not mysterious. There are about five of them.

1. The connection expired

Access tokens expire, and people change passwords, revoke apps, or leave the Business account that granted access. Meta tokens in particular have a habit of dying quietly.

Nothing can prevent this — it is the platform's decision, and correctly so. What can be prevented is finding out from the platform instead of from your scheduler.

2. The upload quota

YouTube caps how many videos an account may upload in a day. Hit it and you get uploadLimitExceeded, which is not a bug and not something to retry immediately. It clears on its own.

A scheduler that retries this every thirty seconds is making the problem worse. One that waits, backs off, and tries later is doing the right thing.

3. The format does not fit the surface

Each destination accepts a different set. A carousel that works on Instagram is not a thing Facebook Pages treat identically. A Story has different constraints from a Reel. A 4:5 image dropped into a vertical slot gets letterboxed or cut.

This is the one worth catching before publishing, because it is the only failure in the list that is fully knowable in advance.

4. The file moved

If your media lives in cloud storage and something gets renamed, moved to another folder, or unshared between scheduling and publishing, the post has nothing to send.

5. The platform was simply having a bad minute

APIs return 500s. Requests time out. This is the ordinary background noise of publishing to someone else's system, and it is exactly what retries with backoff exist for. Most of these resolve on the second attempt.

What you should expect from any scheduler

Not "it never fails" — that is not on offer from anyone, because four of the five causes above are outside the tool's control. What is reasonable to expect:

  • A retry with backoff, not one attempt and a shrug, and not a hammering loop either.
  • The platform's real error, in the platform's own words. 403 uploadLimitExceeded tells you what to do. "Something went wrong" does not.
  • Every attempt logged, with timestamps, so you can see that it tried three times over four minutes rather than guessing.
  • The failure surfaced where you look, not left for you to discover by checking the feed.

A hiccup should not be a lost post. But when it genuinely is one, you should be the second to know — not the last.