{
  "id": "P139",
  "slug": "slack-conversations-history-default-limit-15-maximum-limit-15-may-29-2025",
  "status": "verified-page-ready",
  "product": "Slack Web API",
  "family": "Cohort-specific rate/pagination",
  "canonical_url": "https://gitdocs.org/fix/slack-conversations-history-default-limit-15-maximum-limit-15-may-29-2025",
  "query_alias_url": "https://gitdocs.org/q/slack-conversations-history-default-limit-15-maximum-limit-15-may-29-2025",
  "markdown_url": "https://gitdocs.org/fix/slack-conversations-history-default-limit-15-maximum-limit-15-may-29-2025.md",
  "json_url": "https://gitdocs.org/api/fixes/slack-conversations-history-default-limit-15-maximum-limit-15-may-29-2025.json",
  "canonical_query": "Slack conversations.history default limit 15 maximum limit 15 May 29 2025",
  "observed_codex_queries": [
    "Slack conversations.history default limit 15 maximum limit 15 May 29 2025",
    "site:docs.slack.dev/reference/methods/conversations.history limit 15",
    "https://docs.slack.dev/reference/methods/conversations.history"
  ],
  "organic_dependency_search_count": 3,
  "affected_versions": "New commercially distributed Slack apps outside the Marketplace cohort after May 29, 2025, and existing installs after the later enforcement date.",
  "exact_errors": [
    "conversations.history returns only 15 messages",
    "429 Retry-After from conversations.history or conversations.replies"
  ],
  "diagnosis": "This is a Slack platform cohort limit, not a pagination bug. Code must respect the smaller page size and lower request cadence or qualify through the Marketplace path.",
  "before": "await client.conversations.history({ channel, limit: 200 });",
  "after": "const page = await client.conversations.history({ channel, limit: 15 });\n// Persist cursor and schedule the next page after respecting Retry-After.",
  "verification": "curl -I https://slack.com/api/conversations.history",
  "unsafe_fixes": [
    "Do not parallelize page fetches to recover the old throughput; that increases 429s and may hide dropped backfill."
  ],
  "last_verified_at": "2026-06-25",
  "neutral_validation": {
    "organic_search_observed": true,
    "organic_strict_pass": true,
    "no_web_counterfactual_run": false,
    "no_web_strict_pass": null,
    "search_necessity_under_fixture": null,
    "no_web_oracle_note": "Observed query evidence is separated from necessity proof; no-web and stale-contract counterfactuals should be tracked separately."
  },
  "source_trail": [
    {
      "url": "https://docs.slack.dev/changelog/2025/05/29/rate-limit-changes-for-non-marketplace-apps/",
      "label": "Slack rate limit changes for non-Marketplace apps"
    },
    {
      "url": "https://docs.slack.dev/reference/methods/conversations.history",
      "label": "Official reference opened by Codex"
    },
    {
      "url": "https://docs.slack.dev/apis/web-api/rate-limits/",
      "label": "Authoritative source"
    }
  ],
  "source_github_links": []
}
