Skip to main content
enumBroadcastSendDeliveryFailureReason

Values

CHANNEL_NOT_CONNECTED

Plain is not connected to this Slack channel, so there is no token to post with.

SEND_MISSING

The send this delivery belongs to no longer exists.

BROADCAST_DELETED

The broadcast was deleted after the send started.

EMPTY_CONTENT

The broadcast's content is empty, so there is nothing to post.

INVALID_CONTENT

The broadcast's content could not be converted into a Slack message.

NOTIFICATION_TITLE_NOT_SET

The broadcast has no notification title, which recipients see before opening anything.

SLACK_INTEGRATION_NOT_FOUND

The workspace's Slack integration for this recipient's team is missing.

SENDER_NOT_SET

The broadcast has no sender set.

SENDER_USER_MISSING

The user the broadcast sends as no longer exists.

SENDER_UNAVAILABLE

The user the broadcast sends as cannot be sent as any more, for example after being deactivated.

EMAIL_DELIVERY_NOT_SUPPORTED

The recipient is an email address, which broadcasts cannot yet be delivered to.

MISSING_SLACK_SCOPES

Plain's Slack app is missing a scope it needs to post. Reconnecting the integration fixes this.

INVALID_SLACK_BLOCKS

Slack rejected the message's formatting. Retrying the same content cannot succeed.

CHANNEL_ARCHIVED

The Slack channel is archived, or the recipient is a deactivated user's DM. Nothing can be posted to it again.

CHANNEL_READ_ONLY

The Slack channel does not accept posts from apps, for example a read-only announcement channel.

NO_SLACK_PERMISSION

Slack refused to let Plain post to this channel, for reasons outside the app's scopes.

MESSAGE_TOO_LONG

The message was too large for Slack to accept.

SLACK_UNRECOVERABLE

Slack rejected the post for a reason that will not change on a retry.

MAX_ATTEMPTS

Slack kept failing and the delivery ran out of attempts.

MAX_RETRIES

The delivery was retried until it ran out of attempts, across a mix of failures and rate limits.

RATE_LIMITED

Slack rate limited this recipient's Slack workspace for longer than the delivery could wait.

ABANDONED_MID_SEND

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.

NEVER_DELIVERED

No attempt to post the delivery was ever made before the recovery sweep closed it out.

UNKNOWN

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.