What partial means
A publish job fans out to every account in account_ids. If at least one
account succeeds and at least one fails, the job status is partial. The post is
live where it succeeded; you only need to deal with the accounts that failed.
Inspecting per account results
Read the job in the publish history. Each entry has a
results array with one item per account:
{
"status": "partial",
"results": [
{ "account_id": "acc_x", "provider": "x", "status": "published", "platform_post_id": "1890..." },
{
"account_id": "acc_ig",
"provider": "instagram",
"status": "failed",
"error_code": "unsupported_media_format",
"error_message": "Instagram image publishing supports JPEG files only."
}
]
}
error_code is stable and safe to branch on in code; error_message is for
humans and logs.
Recovering
- Filter
resultsto the accounts wherestatusisfailed. - Use
error_codeto decide: fix the input (for example convert the image to JPEG) or, for a transient error, retry. - Re-publish only to the failed accounts, not the whole set, so you do not duplicate the post where it already succeeded.
const failed = job.results.filter((r) => r.status === "failed");
if (failed.length) {
await publish({
accountIds: failed.map((r) => r.account_id),
text: job.text,
mediaUrls: job.media_urls,
});
}
For the full error model, see Errors.