# Why did my scheduled social media post fail? Causes & fixes > A scheduled post usually fails for one of four reasons: an expired connection, text over the limit, media the platform rejects, or a platform rule. Here's how to tell which. - Published: 2026-09-29 - Last updated: 2026-09-29 - Author: Sanju (Founder & CEO @ DunSocial) - Topics: tips, scheduling --- A scheduled post almost always fails for one of four reasons: the account connection expired, the text is over the platform's limit, the media breaks a size or format rule, or the platform has a rule the post ran into. Work through them in that order & you will find the cause most of the time. Most of these are avoidable, & the rest can be caught early instead of discovered when nothing appears on your profile. ## 1. The connection expired or was revoked Every platform connection is an OAuth token, & tokens expire. Access tokens on some platforms last only a couple of hours, others are long-lived, & all of them need refreshing before they lapse. DunSocial refreshes each connection on a schedule suited to that platform, for example every 90 minutes for X, every 18 hours for LinkedIn, & about every 50 days for Threads & Instagram. A refresh can still fail if you changed your password, removed the app from the platform's connected apps, or the platform revoked access. When that happens, you reconnect the account in a couple of clicks, & DunSocial's `social_account.reconnect_required` webhook can tell you the moment it happens. **How to check:** open your connected accounts & check whether the destination account still shows as connected. **Fix:** reconnect it, then reschedule the failed post. ## 2. The text is over the limit Limits vary widely: 280 characters on X (25,000 with Premium), 300 on Bluesky, 500 on Threads, 3,000 on LinkedIn. A post written for LinkedIn & sent unchanged to Bluesky will be rejected. Bluesky counts graphemes, so the count can differ from what your editor shows. **How to check:** compare the post length against the destination's limit. **Fix:** trim it for that platform, & keep a buffer instead of writing right to the limit. ## 3. The media breaks a rule This is the most common cause after connections. A few examples of rules that are easy to hit: - **Bluesky images** are capped near 1 MB, so a large photo has to be compressed. - **X** takes up to 4 media per post (photos, videos, or a mix), with photos up to 5 MB each & each video checked for length & size. - **LinkedIn & Reddit** don't mix: LinkedIn takes images or one video, & Reddit takes one image or one video. - **YouTube** in DunSocial means Shorts only, so a landscape video is rejected. - **YouTube & TikTok** are video-only, & **Pinterest** needs an image, so a text-only post fails there. **How to check:** look at the media count, size, & format against the destination. **Fix:** compress or convert the file, split a mixed post, or add the missing media. DunSocial's composer checks these limits before you schedule, & the full numbers are in [social media character limits & media specs by platform](/blog/social-media-post-character-limits-by-platform-2026). ## 4. The platform has its own rules Some failures are not about size at all. Reddit communities set their own flair & allowed post types. A Discord or Slack post needs a channel the connected bot can actually write to. Facebook Pages in DunSocial support Page feed posts only, & are in limited beta. **How to check:** read the error on the failed post & the destination's own rules. **Fix:** adjust the post to the destination, or pick a different one. ## Catch failures before your audience does The worst version of a failed post is the one you find a week later. Two habits prevent it: - **Check the calendar after scheduling a batch,** especially after reconnecting an account. - **Add a webhook.** DunSocial sends a signed `post.publish_failed` event when a publish fails & `social_account.reconnect_required` when a connection needs attention, so a Slack message reaches you in minutes. The setup is covered in [DunSocial webhooks: get notified when a post publishes or fails](/blog/dunsocial-webhooks-get-notified-when-a-post-publishes-or-fails). If you build on the API, the same events are how an automation knows a post did not go out. See [schedule social media posts programmatically with the API](/blog/schedule-social-media-posts-programmatically-with-the-api). ## Try it DunSocial is a flat **$20/mo** or **$192/yr**, with a 14-day trial & no card required. [Start the trial](https://app.dunsocial.com/login) & let the composer catch a broken post before it's scheduled. ## FAQ ### Why did my scheduled post not publish at all? The most likely cause is an expired or revoked connection, since a post cannot go out through an account that has lost access. Reconnect the account, then reschedule the post. ### Will a failed post retry on its own? If the platform rate-limited the publish, DunSocial reschedules it automatically. A post that fails because of a rule, such as text over the limit or media the platform rejects, will fail again until you fix it, so fix the cause, then reschedule. ### How do I get alerted when a post fails? Add a webhook subscribed to `post.publish_failed` & `social_account.reconnect_required`, & point it at a Slack or Discord relay or your own dashboard. ### Can I review before go-live? Yes. Drafts wait for your confirmation before anything is published, including drafts written by AI. --- ## About this document This is the Markdown representation of https://www.dunsocial.com/blog/why-did-my-scheduled-social-post-fail. The HTML version of the same page is at the same URL. You can also request Markdown from any page by sending `Accept: text/markdown`. Machine-readable summary of the whole site: https://www.dunsocial.com/llms.txt ## Company - Product: DunSocial, https://www.dunsocial.com - Legal entity: THISUX PRIVATE LIMITED, Chennai, Tamil Nadu, India - Support: support@dunsocial.com - Open the app: https://app.dunsocial.com/login