SurfSense/surfsense_backend/app/connectors
google-labs-jules[bot] 807c83b2f6 Fix: Handle Slack API rate limiting for conversations.list
The `get_all_channels` method in `slack_history.py` was making paginated
requests to `conversations.list` without any delay, leading to HTTP 429
errors when fetching channels from large Slack workspaces.

This commit introduces the following changes:
- Adds a 3-second delay between paginated calls to `conversations.list`
  to comply with Slack's Tier 2 rate limits (approx. 20 requests/minute).
- Implements handling for the `Retry-After` header when a 429 error is
  received. The system will wait for the specified duration before
  retrying. If the header is missing or invalid, a default of 60 seconds
  is used.
- Adds comprehensive unit tests to verify the new delay and retry logic,
  covering scenarios with and without the `Retry-After` header, as well
  as other API errors.
2025-05-27 12:56:26 +00:00
..
github_connector.py documents table migration, fix/update github indexing 2025-04-13 21:23:05 -07:00
linear_connector.py feat: Added Linear Connector 2025-04-15 23:10:35 -07:00
notion_history.py feat: SurfSense v0.0.6 init 2025-03-14 18:53:14 -07:00
slack_history.py Fix: Handle Slack API rate limiting for conversations.list 2025-05-27 12:56:26 +00:00
test_slack_history.py Fix: Handle Slack API rate limiting for conversations.list 2025-05-27 12:56:26 +00:00