Skip to content

Common errors

Every error in Dropslate has the same shape - {code, message, hint} - whether it appears as a row in the plan, in a failed post’s drawer, as an API response or as an MCP tool result. message states the fact, often in the network’s own words; hint says what to do; code is the stable part to look up. The codes below are the ones that come up most; the full set is in the API errors page and on each route in the OpenAPI reference.

Code When What to do Where you see it
quota_exceeded The plan’s limit for posts this month, connected accounts, storage or file size is reached. Cancel a post you no longer need (its slot comes back), disconnect an account, delete files, or upgrade - the response carries limit, used and upgradeUrl. Plan row, API 402, MCP result
confirm_required POST /posts or a mutating MCP tool was called without confirm: true. Call it again with confirm: true. Nothing was created. API 409, MCP result
rate_limited More than 600 requests in 10 minutes from one address, more than 60 POST /posts in an hour for the workspace, or an analytics refresh inside 15 minutes. Wait the seconds in Retry-After; batch several accounts into one request. API 429, MCP result
insufficient_scope A read-only key or token tried a write. Use a key with write, or connect the agent again and allow writing. API 403, MCP tools/list shows only read tools
unauthenticated The key or session is missing, revoked or wrong. Check the key in Settings → API keys; create a new one if it was revoked. API 401
not_found The id does not exist - or belongs to another workspace, which answers exactly the same. Check the id; account ids come from GET /accounts or dropslate_list_accounts, never guessed. API 404, MCP result
caption_too_long The text is over the network’s limit in that network’s unit (characters, UTF-8 bytes, UTF-16 units). Shorten it; the counter in the network’s tab shows the unit. Related: title_too_long, tags_too_long, story_too_long. Plan row, composer counter
aspect_unsupported The image or video shape is outside what the content type accepts (an Instagram feed post takes 4:5 to 1.91:1; a Facebook Reel is 9:16). Crop or re-export, or choose another content type. Related: media_kind, video_too_long, video_too_short, image_too_large. Plan row, media-card verdict
media_not_ready The file is still uploading or processing. Wait for ready; poll GET /media/{id} or dropslate_get_media. Do not upload again. Plan row, API, MCP
forbidden_chars < or > in a YouTube title or description. Remove them. Plan row

These come back with the network’s name as a prefix and the network’s own message inside:

Code Meaning What to do
youtube_token_rejected, instagram_token_rejected, facebook_token_rejected, threads_token_rejected The network no longer accepts the stored token. Reconnect the account on Accounts; the post retries once the token works.
instagram_permission_missing, facebook_permission_missing, threads_permission_missing A permission was removed on the network’s side (your role on the Page changed, the app was removed in the network’s settings). Reconnect and grant every permission asked.
youtube_quota_exceeded The YouTube project’s daily quota is spent. Nothing to do; the post retries after the reset, the hint says when.
facebook_rate_limited, instagram_rate_limited, threads_rate_limited, youtube_rate_limited The network’s own limit for the account or Page (30 Reels a day on a Page, for example). Wait for the network’s window; Retry the next day if the post did not retry itself.
youtube_unverified The channel is not phone-verified, so a thumbnail or a long upload was refused. Verify the channel in YouTube.
*_unavailable The network answered with a server error. Retried on its own, 1, 5 and 15 minutes later.
*_rejected The network refused the post for a reason in its message. Read the message in the post drawer; fix the file or the field; Retry.