Social media retry workflows that do not create duplicate posts
A retry strategy for social publishing that fixes failures without reposting what already succeeded.
TL;DR
Retries should be target-specific and evidence-based. If one platform failed and another succeeded, only retry the failed target.
I once hit "retry" on a failed social post and duplicated every successful one.
Five platforms. X published fine. LinkedIn published fine. Bluesky failed with a token error. Threads was pending. Instagram was fine.
I clicked retry. The tool resubmitted the entire post to every platform. X got a duplicate. LinkedIn got a duplicate. Instagram got a duplicate. Bluesky published on the second attempt. But now three platforms had the same post twice.
I spent 20 minutes deleting duplicates. Apologizing in replies. Looking like a bot.
This is the retry problem. Publishing failures are normal. Tokens expire. Platforms have outages. Media processing times out. The risk is not the failure. The risk is the retry strategy that doesn't know what already succeeded.
Retry the Target, Not the Post
A safe retry workflow records every attempt at the target level. Not the post level.
| Target | Attempt 1 | Attempt 2 | Safe to Retry? |
|---|---|---|---|
| X | Published (ID: 123) | — | No — already live |
| Published (ID: 456) | — | No — already live | |
| Bluesky | Failed (token expired) | — | Yes — never published |
| Threads | Failed (timeout) | Failed (timeout) | Yes — never published |
| Published (ID: 789) | — | No — already live |
When you retry, the system resubmits only Bluesky and Threads. The successful targets are skipped. No duplicates.
What the System Must Store
Per-target status. Pending, publishing, published, failed, canceled. Not one status for the whole post.
Platform receipt. When a platform confirms, store the post ID or URL. This is proof of publication.
Error details. Not "Something went wrong." Specific errors: token expired, media too large, rate limited, platform timeout. The operator needs to know whether to reconnect, resize, or wait.
When Not to Auto-Retry
Token expired? Don't retry. The account needs reconnection. Tell the operator.
Media rejected? Don't retry. The media needs to change. Tell the operator.
Rate limited? Wait. Retry when the window resets. Automatically.
Platform timeout? Retry once. If it fails again, flag for manual review.
Smart retries save time. Dumb retries create duplicates and erode trust.
FAQ
They happen when a system retries the whole post instead of retrying only targets that failed or lack a confirmed platform receipt.
Store the platform post ID or URL, the publish timestamp, and the target that produced the receipt.
No. Some failures need account reconnect, copy changes, or media fixes before a retry is safe.
Retry the failed target, not the whole week.
SocialSpool records publish attempts and target status so recovery stays precise.
See plans