Why Didn't My Scheduled Post Go Out on X? 8 Causes and Fixes (2026)
Why didn’t my scheduled post go out on X?
In most cases the post was never truly scheduled, it was scheduled for a different time zone, or the tool lost permission to post for your account. Less often, X refused it: a duplicate of a recent post, a posting limit, an unsupported file or text over the length limit. Each cause leaves a different trace, so check the scheduler’s own status first, then your profile, then the exact error message. This guide lists the eight causes in the order they usually turn up, the fix for each, and how to retry without publishing the same post twice.
First 60 seconds: where to look
Before changing anything, record what actually happened. Four checks answer most cases:
- Which tool owns the schedule? A post scheduled in X’s own composer lives under Unsent posts, then Scheduled. A post scheduled in Buffer, a Telegram bot or another app lives only in that tool, and X will not show it anywhere until it is published.
- What status does it show? “Scheduled”, “Draft”, “Failed” and “Sent” mean different things. A card on a content calendar is not proof that a publish job exists.
- Which account and which time? Read the full handle and the saved date with its time zone, not just the hour.
- Is it on your profile? Search your own profile for a phrase from the post. For a thread, check every reply, not only the first post.
The 8 causes, and the fix for each
| # | Cause | What you see | Fix |
|---|---|---|---|
| 1 | Saved as a draft, not scheduled | Post sits in Drafts; nothing failed | Open it, set the date and time, and confirm the button says Schedule |
| 2 | Wrong time zone | Post went out hours early or late, or is still pending | Set the zone explicitly in the tool and re-time pending posts |
| 3 | Access revoked or expired | “Unauthorized”, “reconnect your account” or silent failure | Reconnect the X account in the tool, then post a test |
| 4 | Duplicate of a recent post | “Status is a duplicate” or “may have been shared recently” | Reword the post meaningfully; space similar posts apart |
| 5 | Posting limit reached | “Daily posting limit” or a rate-limit error | Wait, then spread the schedule across the day |
| 6 | Media rejected | Text posted without the image, or the whole post failed | Re-export the file in a supported format and size |
| 7 | Too long for the account | Validation error before or at publish time | Trim to 280 characters, or split into a thread |
| 8 | Account locked or limited | Error mentioning a locked or suspended account | Sign in to X, clear the lock, then retry |
1. It was saved as a draft
The most common “failure” is not a failure at all. In X’s composer, picking a time and then closing the sheet without tapping Schedule leaves an unsent draft. In third-party tools, an idea, a draft and a queued post often look alike on a calendar. Open the item and read its status; if the button still says Post or Save, nothing was ever going to publish.
2. The time zone did not match yours
“9:00” means nothing without a zone. A tool set to UTC, a teammate in another country or a phone that changed zones while travelling can all move a post by hours. The fix is to set one explicit zone per account and re-check pending posts after any change. Our guide to time zones and quiet hours for Telegram-to-X scheduling walks through the traps, including daylight-saving changes.
3. The tool lost permission to post
Third-party schedulers post through X’s API with a token you granted. Changing your password, revoking the app under connected apps in X’s settings, or a token that is not refreshed in time all break that link. Sendible’s X error list includes the authorisation errors this produces. Reconnect the account from inside the tool, then publish a short test before trusting the rest of the queue.
4. X treated it as a duplicate
X rejects posts that repeat your recent text. Buffer’s X error library describes the rule as X comparing a new post “against your recent posts before publishing”. Recurring posts with identical wording are the usual trigger. Change the wording, not just one emoji, and space similar posts apart. Our note on duplicate-content guards for Telegram-to-X posting explains how to catch this before X does.
5. A posting limit kicked in
Buffer’s error library cites X’s cap of 2,400 posts per day, split into smaller semi-hourly limits, so a burst can be refused well below the daily total. Scheduling tools also face X API rate limits per app. If one post in a cluster failed and the rest went out, spacing is the likely cause. Move pending posts at least a few minutes apart and retry later.
6. The media was rejected
An image in an unsupported format, a video over the size or length limit, or an upload that timed out can make the whole post fail, or publish the text without the file. Re-export the file, keep it within X’s limits, and retry. Our breakdown of media upload sizes and formats for Telegram-to-X posts lists the limits that matter.
7. The text was too long for the account
Accounts without a Premium subscription are limited to 280 characters per post, and links count as 23 characters whatever their real length. A post written for a Premium account, or pasted from another network, can exceed that. Trim it or split it into a thread.
8. The account was locked
If X temporarily locks an account for suspected spam, every tool stops publishing until you sign in to X and complete the steps it shows. Buffer documents this case and recommends sending one post from X itself to unlock, then refreshing the connection.
Retrying without posting twice
The worst outcome of a failed post is two copies of it. Work from the recorded state:
- Check your profile and every reply in a thread before retrying; a “failed” item can be half-published.
- Read the exact error and fix its cause first; retrying a duplicate or a revoked token fails the same way.
- Retry only what is missing. For a thread, post the missing replies under the last live one.
- Keep one tool in charge of each account, so the same post is not queued in two places.
How Auto X handles this
Auto X is a Telegram bot by GSPTeck (our product) that schedules and auto-publishes text and media posts to X. Features relevant to missed posts:
- You see pending posts with /queue and can cancel any of them there.
- The bot messages you in Telegram when a post goes live, so a missing confirmation is your signal to check.
- The X link uses OAuth once; if access is revoked, you reconnect with /connect.
- The free plan covers text and media scheduling with a 7-day horizon and 10 media posts a month; loops and AI are on paid plans.
Honest comparison: X’s own scheduler is free, needs no third party and has no token to expire, but X does not document any alert for a scheduled post that fails, and it is not in the Android app (see which X apps can schedule posts on iPhone, Android and web). A bot adds a confirmation message and a queue you can read from any phone, at the cost of one more connected app to keep authorised. Try it from the Auto X Telegram scheduler homepage.
A worked example
Illustrative case. A shop schedules three launch posts for 09:00, 09:02 and 09:04. The first goes out; the second and third do not. The status for both reads “failed”, and the error on the third says the post may have been shared recently. Checking the text shows the third post repeats the first almost word for word. The second failed because its video was over the size limit. The fix: re-export the video, rewrite the third post around a different detail, move both to 09:30 and 10:15, and confirm each on the profile when the bot reports it live.
FAQ
Where do I find scheduled posts on X?
In X’s composer, open Unsent posts and then the Scheduled tab. Posts scheduled in a third-party tool do not appear there; check that tool’s queue instead.
Why did my scheduled post go out at the wrong time?
The scheduler and you were using different time zones, or the zone changed after you scheduled. Set the zone explicitly in the tool and re-check pending posts after travel or a daylight-saving change.
Can I just reschedule a failed post?
Yes, after you fix the cause. Check your profile first so you do not publish a copy of something that partly went out, and reword it if the error mentioned a duplicate.
Does X notify me when a scheduled post fails?
X does not document a failure alert for its own scheduler, so check Unsent posts if something is missing. Third-party tools usually show a failed status, and some, such as Auto X in Telegram, message you when a post goes live, so a missing message is the signal to look.
Sources
- Buffer Help: X/Twitter error library (duplicates, limits, locked accounts) (checked 2026-10-21)
- Sendible Support: X (Twitter) error messages (checked 2026-10-21)
- X API documentation: rate limits (checked 2026-10-21)
- Auto X Scheduler bot on Telegram (checked 2026-10-21)