Recovery playbook
One page for diagnosing and recovering from any VoxBurst posting failure. Find your situation and follow the steps.
1. Validation error before the post is created (status 400)
The post was never created. The API returned an error immediately.
Diagnose: Read the error message — it usually names the field and what’s wrong.
validate_content(
content: "your caption",
platforms: ["INSTAGRAM"]
)Common causes:
| Error | Fix |
|---|---|
CONTENT_TOO_LONG | Shorten the caption to the platform’s limit |
MEDIA_REQUIRED | Add mediaUrls or mediaIds (required on Instagram) |
CONTENT_TYPE_REQUIRED | Add contentType: "IMAGE" (required on Instagram) |
CONTENT_TYPE_NOT_SUPPORTED | Change contentType — e.g. Instagram does not support STORY |
ACCOUNT_NOT_FOUND | Check the accountId value from list_accounts |
Invalid scheduledFor | Use ISO 8601 format in UTC: 2026-06-01T15:00:00Z |
2. Post created but status stays pending or publishing
The post exists in VoxBurst but publishing hasn’t completed.
Check status:
get_post(postId: "post_abc123")What to do:
pendingfor less than 5 minutes: normal — posts go through a scheduling queue. Wait and re-check.pendingfor more than 10 minutes: check the VoxBurst dashboard for queue issues.publishingfor more than 5 minutes: the publish attempt is in flight. Wait another minute, then check again.
3. Post status is failed (all platforms failed)
get_post(postId: "post_abc123")Read platforms[].error for each platform to find the reason. Then:
Step 1 — Retry (for transient errors)
retry_post(postId: "post_abc123")VoxBurst automatically retries up to 3 times with exponential backoff. If the failure was transient (network error, rate limit), this resolves it.
Step 2 — Fix and resubmit (for content/media errors)
If the error was caused by invalid media or caption:
# Get the postPlatformId from get_post's platforms[] array
curl -X POST https://api.voxburst.io/v1/posts/post_abc123/platforms/pp_xyz789/fix \
-H "Authorization: Bearer vb_live_xxxxxxxxxxxxx" \
-d '{ "mediaUrl": "https://cdn.example.com/corrected-image.jpg" }'This resets the retry counter and resubmits with corrected media.
Common platform errors and fixes:
platforms[].error | Cause | Fix |
|---|---|---|
MEDIA_REJECTED / error 9004 | Instagram rejected image format | Re-upload or use /fix with a fresh URL |
ASPECT_RATIO_INVALID | Image ratio outside 4:5–1.91:1 | Re-crop and re-upload |
CONTENT_TOO_LONG | Caption exceeded the platform limit | Shorten via update_post then retry |
ACCOUNT_DISCONNECTED | OAuth token expired | Re-connect account in VoxBurst settings |
QUOTA_EXCEEDED | YouTube daily limit hit | Wait until midnight Pacific, then retry |
DUPLICATE_CONTENT | Twitter rejected identical tweet | Call update_post to change caption slightly |
INSUFFICIENT_PERMISSIONS | Missing required page permissions | Re-connect account and grant required scopes |
4. Post status is partial (some platforms succeeded, some failed)
Instagram published but Twitter failed. VoxBurst records this as partial.
get_post(postId: "post_abc123")Look at platforms — entries with status: "published" succeeded, entries with status: "failed" need attention.
Retry only the failed platforms:
retry_post(postId: "post_abc123")retry_post re-queues only failed platforms. Platforms that already published are never re-posted.
If a platform shows retryCount: 3 — it has exhausted automatic retries. Use the REST /fix endpoint to reset it:
curl -X POST https://api.voxburst.io/v1/posts/post_abc123/platforms/pp_failed_platform/fix \
-H "Authorization: Bearer vb_live_xxxxxxxxxxxxx"5. Media processing failure
The media upload succeeded but the file failed processing.
curl https://api.voxburst.io/v1/media/media_abc123 \
-H "Authorization: Bearer vb_live_xxxxxxxxxxxxx"Look for "status": "FAILED" and validationResults for the reason.
Common causes and fixes:
validationResults error | Fix |
|---|---|
| Unsupported codec | Re-encode video to H.264 with AAC audio |
| Resolution too low | Use minimum 720p for video |
| File corrupted | Re-download or re-export the file |
| Duration too long | Trim to within platform limits |
Upload a corrected file and get a new mediaId before retrying the post.
6. Account permission / auth failure
get_post(postId: "post_abc123")platforms[].error will mention ACCOUNT_DISCONNECTED, INVALID_TOKEN, INSUFFICIENT_PERMISSIONS, or similar.
Fix:
- Go to VoxBurst app → Settings → Connected Accounts
- Find the affected account
- Disconnect and re-connect it
- Make sure to approve all requested permissions during re-connection
Then retry the post.
7. Retry vs recreate — when to do each
| Situation | Action |
|---|---|
| Transient error (network, rate limit) | retry_post |
| Wrong media (bad aspect ratio, format) | /fix with corrected mediaUrl |
| Wrong caption (too long, wrong content) | update_post then retry_post |
| Wrong account targeted | Cannot change after creation — delete and create a new post |
| Platform exhausted retries (retryCount=3) | REST /fix to reset counter |
Wrong contentType | Cannot change after creation — delete and create new |
8. Delete and start over
Sometimes the simplest fix is to delete the post and create a fresh one:
delete_post(postId: "post_abc123")Only draft, scheduled, failed, and partial posts can be deleted through the MCP tool. Published posts cannot be deleted.
Then create a new post with the corrected parameters.
Platform-specific recovery
For platform-specific failure details, see the individual platform failure cookbooks: