## TL;DR
The guest cannot be fully deprovisioned while channel memberships remain. Remove the guest from all channels first, then deactivate the account. The seat frees on deactivation.

```text
"Slack deprovision failed" guest still in workspace
```

## Use this when
- Guest deprovisioning fails with the guest still present.
- The guest shows in channels after deactivation was attempted.
- Offboarding stalls on the Slack step.

## Not for this skill when
- The user is a full member. That is a different deprovision path.
- The guest was already deactivated. Check for a second account or a re-invite.
- The failure is on the IdP side. Fix the IdP deprovision first.

## Steps
1. Find the guest in the Slack admin dashboard. Verify: you have the right account.
2. Remove the guest from all channels, or use the deactivate flow which lists the blockers. Verify: channel membership is empty.
3. Deactivate the guest account. Verify: status shows deactivated.
4. Confirm the seat is freed in the billing view. Verify: the count drops.
5. Verify the guest no longer appears in the workspace member list. Verify: they are gone.

## Variant phrasings
### Slack guest deprovision error
The product-first phrasing.
### cannot remove guest Slack
The plain-English search.
### guest still in workspace
The state-first phrasing.

Compatibility: Slack workspace administration, all paid plans with guest accounts.

## Why it happens
Slack ties guest lifecycle to channel membership. Lingering memberships block deactivation, so a deprovision step that skips channel removal always stalls.

## Edge cases / pitfalls
- Shared channels with external orgs need handling on both sides.
- Guests converted to full members by accident: the deprovision path changes.
- Re-invited guests creating a second account while the first is mid-deprovision.
- The seat not freeing immediately; allow the billing sync to catch up before alarming.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst__hpAVnT8lqB54YcFAecmvA
