Slack API · error code

Slack error account_inactive: Token for a deleted user or workspace

Permanent - do not retryHTTP 200Tokens & authentication

Last verified against Slack API reference - chat.postMessage errors

What Slack returns
Authentication token is for a deleted user or workspace when using a bot token.

What error account_inactive means

The token is syntactically fine and Slack recognizes it — but the account behind it no longer exists in an active form. Slack's reference wording is "Authentication token is for a deleted user or workspace when using a bot token." For a user token, the installing user was deactivated; for a bot token, the app's bot user was removed or the entire workspace was deleted or deactivated.

This error is a lifecycle event, not a bug. The most common real-world trigger for user-token integrations is offboarding: the employee who originally installed the app leaves the company, IT deactivates their Slack account, and every integration riding on their xoxp- token dies the same hour. Nothing in your code changed; the credential's owner ceased to exist. Bot tokens are more durable because they are tied to the app rather than a person, but they still die with the workspace or with the bot user's removal.

There is no retry and no repair of the existing token. The integration needs to be re-established: reinstalled by an active user, or re-authorized against an active workspace. Treat account_inactive in logs the way you would treat token_revoked — as a terminal state for that credential that should page a human or trigger your re-install flow, not as something to retry into oblivion.

What it looks like

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

Why it happens

  • The user who installed the app (user-token install) was deactivated in the workspace — the classic offboarding failure.
  • The workspace itself was deleted or deactivated, killing bot tokens with it.
  • The app's bot user was removed from the workspace.
  • An Enterprise Grid migration or workspace consolidation retired the workspace the token was issued for.

How to fix Slack error account_inactive

  1. 1Identify the token's owner: auth.test on a still-working sibling token, or check the app's install history under your app management page.
  2. 2If the installing user was deactivated, have an active user (ideally a service account) reinstall the app and store the newly issued token.
  3. 3If the workspace was migrated or consolidated, re-run the OAuth install against the surviving workspace.
  4. 4Mark the dead token as terminal in your datastore so retry queues stop burning requests on it.
  5. 5For multi-workspace apps, wire up the tokens_revoked and app_uninstalled events so this state is recorded the moment it happens rather than discovered at send time.

How to stop it recurring

Install workspace integrations with bot tokens rather than personal user tokens wherever the needed methods allow it, and when a user token is unavoidable, install as a dedicated service account that survives employee offboarding. Subscribe to the tokens_revoked event and treat it as the authoritative kill signal for stored credentials.

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

Related codes

Error account_inactive - quick answers

What does Slack error account_inactive mean?

The token is syntactically fine and Slack recognizes it — but the account behind it no longer exists in an active form. Slack's reference wording is "Authentication token is for a deleted user or workspace when using a bot token." For a user token, the installing user was deactivated; for a bot token, the app's bot user was removed or the entire workspace was deleted or deactivated.

How do I fix Slack error account_inactive?

1. Identify the token's owner: auth.test on a still-working sibling token, or check the app's install history under your app management page. 2. If the installing user was deactivated, have an active user (ideally a service account) reinstall the app and store the newly issued token. 3. If the workspace was migrated or consolidated, re-run the OAuth install against the surviving workspace. 4. Mark the dead token as terminal in your datastore so retry queues stop burning…

Should I retry after error account_inactive?

No. Retrying the same request produces the same error; the condition has to be fixed first. Treat it as a permanent failure for that message and surface it, rather than looping.

Stop debugging Slack by hand

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