Skip to content

Error Codes

UmbSocial reports problems as stable codes rather than sentences, so a client can translate them and code can act on them. A code is <area>.<problem>, sometimes followed by :<detail> (a network id, a field name or a handler’s message).

Codes are returned in a service result’s Errors, in a channel result’s Errors, in the management API’s problem details (codes) or channel warnings, and recorded in a target’s Error.

Code Meaning
post.not_found There is no post with that key. (404 in the management API.)
post.not_yours The person has Write but not Schedule, and the post isn’t their own draft. Without Schedule, you can edit or delete only your own drafts.
post.sealed The free edition’s history window has sealed the post: it can’t be edited, retried or marked as published.
post.in_flight The post is being sent on a channel right now, so it can’t be edited or deleted (or its channel removed). Try again shortly.
post.outcome_unknown A channel’s outcome is Unknown. Resolve it (retry, or mark as published) before editing the post.
post.cancelled:<message> A saving or deleting handler refused the change, with its message.
text.required The post’s text is empty.
field.too_long:text The text (or a channel’s own text) is over 63,206 characters.
field.too_long:linkTitle The link title is over 200 characters.
field.too_long:linkDescription The link description is over 500 characters.
field.too_long:imageAltText The alt text is over 1,000 characters.
field.too_long:campaign The campaign is over 100 characters.
link.https_required The link (or the URL given when marking as published) isn’t an absolute https URL with a host, of up to 2,048 characters. For a link card, also when the URL uses another port or carries a user name or password, or a redirect leads to such a URL.
media.unknown The image’s key isn’t a media item. (Management API.)
image.framing_invalid The image’s focal point or a crop lies outside the image, a crop leaves nothing of it, or a network has two crops.
link.not_allowed The link card couldn’t be read: the page’s host resolves to an address that isn’t public (private, loopback, link-local or reserved). The post can still be saved.
link.unreachable The link card couldn’t be read: the page answered with an error, isn’t HTML, didn’t answer within 5 seconds, or redirected more than 3 times. The post can still be saved.
text.too_long:<network> A channel’s text is over its network’s limit, as that network counts it.
image.required:<network> The network needs an image (Instagram).
link.title_required:<network> The network needs a link title when there is a link (LinkedIn).
link.image_conflict:<network> The network takes a link or an image, not both (LinkedIn).
channel.none The post has no channels.
channel.unknown A channel doesn’t exist or has been removed.
channel.paused A channel is beyond the free edition’s channel allowance, so it can’t take new posts.
schedule.past A specific time is in the past (or missing).
schedule.no_free_slot Add to queue found no free slot in the next 28 days (or the schedule has no slots).
Code Meaning
target.not_found There is no target with that id. (404 in the management API.)
target.not_retryable Only a Failed or Unknown target can be retried.
target.not_resolvable Only a Failed or Unknown target can be marked as published.
target.cancelled:<message> A retrying or marking published handler refused, with its message.
Code Meaning
field.required:name The channel has no name.
field.too_long:name The channel’s name is over 100 characters.
channel.unknown There is no channel with that key, or it has been removed.
channel.network_unavailable The network isn’t known, or its Automate provider package isn’t installed.
channel.settings_invalid The channel options aren’t a JSON object of the network’s options, a value doesn’t match its pattern, or a required option is missing.
channel.connection_mismatch The Automate connection doesn’t exist or isn’t the network’s connection type.
channel.limit The free edition allows 3 channels.
channel.no_workspace No Automate workspace with a service account allows the channel’s connection, so its automation couldn’t be created. The channel is saved.
channel.automation_invalid Automate refused the managed automation as invalid.
channel.cancelled:<message> A saving or removing handler refused the change, with its message.
post.in_flight One of the channel’s posts is being sent right now, so it can’t be removed. Try again shortly.
Code Meaning
schedule.too_many_slots More than 168 slots.
schedule.day_invalid A slot’s day isn’t a day of the week.
schedule.range_too_long A slot range (GET schedule/slots) is empty or longer than 42 days.
connection.unknown Testing a channel’s connection: Automate no longer has the connection.
settings.time_zone_unknown The time zone id isn’t one the server knows (or is over 100 characters).
schedule.cancelled:<message> A schedule saving handler refused the save, with its message.
settings.cancelled:<message> A settings saving handler refused the save, with its message.

These are recorded in a target’s Error (and passed on by SocialPostTargetFailedNotification). When the network itself refused or failed a post, Error holds the network action’s own message instead.

Code Status Meaning
channel.no_automation Refused / Failed The channel has no managed automation: scheduling to it is refused; a post already due fails and nothing is sent.
media.unresolvable Failed The image’s public URL couldn’t be worked out (for example no application URL yet). Nothing was sent.
dispatch.invalid_url Failed The link or image URL isn’t an absolute https URL. Nothing was sent.
link.rewrite_failed Failed The site’s link rewriter threw. Nothing was sent (safe to retry). In the composer’s check it is only a warning on the channel.
dispatch.cancelled:<message> Failed A dispatching handler held the post back. Nothing was sent.
channel.removed Failed The channel was removed before the post went out.
licence.channel_limit Paused The channel is beyond the free edition’s channel allowance. It carries on when the allowance returns.
dispatch.stale Unknown Still being sent after 15 minutes with no result. The post may be live.
run.completed_without_result Unknown The automation run completed without the network’s post step. The post may be live.
run.outcome_unknown Unknown The post step failed without a message, in a way that doesn’t rule out the post being live.
run.not_started Failed Automate couldn’t start the network’s post step, usually because the connection’s settings didn’t resolve (a missing secret, say). Nothing was sent. The run in Automate has the detail.
run.failed Failed The network refused the post, or the run failed before the post step, without a message.
run.<status> Failed The run’s status (for example run.cancelled), when it ended before the post step, or the post step was rejected or skipped, without a message.