agent hit Slack API rate limit mid-seat-count, export failed
Keeps agents inside Slack API rate limits during seat counts by slowing the crawl, following cursor pagination exactly, checkpointing the member list, and backing off on limit errors. Use when users.list calls get throttled. Not for auth failures.
TL;DR
Slack's tiered rate limits hit user-list calls hard. Slow the crawl with delays between calls, follow cursor pagination exactly, checkpoint the member list incrementally, and back off on rate-limit errors.
agent hit Slack API rate limit mid-seat-count, export failedUse this when
- An agent counting Slack seats hits rate limits mid-crawl.
- The users.list calls start failing after early success.
- The workspace is large.
Not for this skill when
- The failure is auth. Fix the token.
- The member list returns empty. That is a scope or method problem.
- The workspace is small and the limit still hits. Check for a loop.
Steps
- Add delays between users.list calls. Verify: the call rate is visibly paced.
- Follow cursor pagination exactly as returned. Verify: no page is skipped or repeated.
- Checkpoint the member list incrementally. Verify: progress survives interruption.
- On rate-limit errors, back off before continuing. Verify: the crawl resumes cleanly.
- Confirm the full member count. Verify: the total matches the workspace size.
Variant phrasings
Slack rate limited
The short phrasing.
users.list 429
The method-first search.
seat count failed
The symptom-first phrasing.
Compatibility: Slack Web API users.list and conversations methods, any agent runtime.
Why it happens
Slack throttles per method per tier, and user enumeration is one of the stricter methods. Agents that page as fast as possible trip it reliably on large workspaces.
Edge cases / pitfalls
- Enterprise Grid with many workspaces multiplying the call count; budget per workspace.
- Nested loops paginating workspaces and users together; the combined rate is what matters.
- The tier's limit changing; do not hardcode the delay, back off adaptively.
- Checkpointing the cursor, not just the count, so resume is exact.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_6WxzP4UC8QgzUdrXk2DDBA