Guides & recipes
Handle partial failures
A post fans out to many networks, and they don't all succeed together. Here's how to spot trouble and recover — without double-posting to the networks that worked.
What a partial failure looks like
If one network rejects a post while others accept it, the post still moves to published — the status reflects that the fan-out ran, not that every network delivered. The most common cause is an expired OAuth token, which surfaces on the account as a health flag.
Per-network status over the API is coming
Today the API returns the aggregate post status; the dashboard shows the per-network breakdown. A per-network delivery field on the API is on the roadmap. Until then, use account health as your signal.
Detect a bad connection
Check List accounts for any connection whose health is attention — that’s the one likely dropping posts:
const BASE = "https://postmyish.com/api/v1";
const headers = { Authorization: `Bearer ${process.env.POSTMYISH_KEY}` };
const { data } = await (
await fetch(`${BASE}/accounts`, { headers })
).json();
const unhealthy = data.filter((a) => a.health === "attention");
if (unhealthy.length) {
console.warn("Reconnect these:", unhealthy.map((a) => a.platform));
}Recover
- Reconnect the flagged network from the Accounts page so it has a fresh credential.
- Re-publish to just that network — not the whole fan-out — so the networks that already succeeded aren’t posted to twice.
{
"caption": "Big news — we shipped 🚀",
"platforms": ["x"]
}Confirm before you retry
Before re-posting, fetch the original with Get a post and confirm its state. Because there are no idempotency keys, a blind retry to the full list would re-post everywhere — always narrow
platforms to the one that failed.