BroadcastSendDeliveryFailureReason
Why a delivery failed. Terminal in every case — a failure that was worth retrying was retried before
the delivery reached FAILED.
BroadcastSendDeliveryFailureReasonValues
Plain is not connected to this Slack channel, so there is no token to post with.
The send this delivery belongs to no longer exists.
The broadcast was deleted after the send started.
The broadcast's content is empty, so there is nothing to post.
The broadcast's content could not be converted into a Slack message.
The broadcast has no notification title, which recipients see before opening anything.
The workspace's Slack integration for this recipient's team is missing.
The broadcast has no sender set.
The user the broadcast sends as no longer exists.
The user the broadcast sends as cannot be sent as any more, for example after being deactivated.
The recipient is an email address, which broadcasts cannot yet be delivered to.
Plain's Slack app is missing a scope it needs to post. Reconnecting the integration fixes this.
Slack rejected the message's formatting. Retrying the same content cannot succeed.
The Slack channel is archived, or the recipient is a deactivated user's DM. Nothing can be posted to it again.
The Slack channel does not accept posts from apps, for example a read-only announcement channel.
Slack refused to let Plain post to this channel, for reasons outside the app's scopes.
The message was too large for Slack to accept.
Slack rejected the post for a reason that will not change on a retry.
Slack kept failing and the delivery ran out of attempts.
The delivery was retried until it ran out of attempts, across a mix of failures and rate limits.
Slack rate limited this recipient's Slack workspace for longer than the delivery could wait.
The delivery held a claim when work on it stopped, so Slack may or may not have received the message. Recorded by the recovery sweep rather than by an attempt.
No attempt to post the delivery was ever made before the recovery sweep closed it out.
The delivery failed for a reason this version of the API does not know how to name. Treat it as an unspecified failure rather than a stable value to branch on.
Was this page helpful?

