Slack API · error code

Slack error service_unavailable: Service temporarily unavailable

RetryableHTTP 200Slack-side errors

Last verified against Slack API reference - chat.postMessage errors

What Slack returns
The service is temporarily unavailable

What error service_unavailable means

The documented description is the complete story: "The service is temporarily unavailable". Slack could not serve the request right now — a deploy, a degraded dependency, a partial outage — and expects you back later. Unlike fatal_error and internal_error, there is no partial-success caveat in the documentation, but for mutating operations the safe posture is the same: prefer idempotent retries (client_msg_id on sends) over blind ones.

Operationally, treat it as availability weather. Single occurrences: retry with backoff and move on. Clusters: consult Slack's status page, engage your circuit breaker, and let queues hold noncritical traffic until the platform recovers. What you must not do is convert an availability dip into a self-inflicted rate-limit problem by retrying in a tight loop — pace retries, cap attempts, and de-duplicate whatever piles up in the queue during the outage.

If your bot is user-facing, degrade visibly: a status note or delayed-delivery marker beats messages silently arriving an hour late with no explanation.

What it looks like

{"ok": false, "error": "service_unavailable"}

Why it happens

  • A temporary Slack-side availability problem (deploy, degraded dependency, partial outage).
  • A platform incident visible on Slack's status page.
  • Occasionally, per-method or per-region degradation while the rest of the API works.

How to fix Slack error service_unavailable

  1. 1Retry with exponential backoff and jitter; cap attempts and queue the remainder.
  2. 2Check Slack's status page when occurrences cluster.
  3. 3Use client_msg_id on message sends so post-recovery retries cannot double-post.
  4. 4Drain backlogs gradually after recovery to avoid tripping rate limits.

How to stop it recurring

Assume the dependency will blink: circuit breakers, bounded queues, and idempotent sends turn Slack outages into delays instead of incidents of your own. Rehearse the recovery path — draining a held queue at a pace that stays within rate limits — before you need it, because an untested drain either double-posts or trades one outage for a throttling penalty. A small amount of chaos testing against a stubbed Slack API pays for itself the first real incident.

Official reference: Slack API reference - chat.postMessage errors. See all Slack error codes or the Slack limits and quotas.

Related codes

Error service_unavailable - quick answers

What does Slack error service_unavailable mean?

The documented description is the complete story: "The service is temporarily unavailable". Slack could not serve the request right now — a deploy, a degraded dependency, a partial outage — and expects you back later.

How do I fix Slack error service_unavailable?

1. Retry with exponential backoff and jitter; cap attempts and queue the remainder. 2. Check Slack's status page when occurrences cluster. 3. Use client_msg_id on message sends so post-recovery retries cannot double-post. 4. Drain backlogs gradually after recovery to avoid tripping rate limits.

Can I retry after error service_unavailable?

Yes - this is a retryable condition. Back off (start around one second and double on each attempt, with jitter) and watch for a retry-after hint from the platform before resending.

Stop debugging Slack by hand

Connect the channel through Conferbot: tokens, webhooks and retries are handled, failures show as readable status.