diff --git a/backend/danswer/connectors/slack/connector.py b/backend/danswer/connectors/slack/connector.py index 596b93b22..5b8907094 100644 --- a/backend/danswer/connectors/slack/connector.py +++ b/backend/danswer/connectors/slack/connector.py @@ -13,6 +13,7 @@ from slack_sdk.web import SlackResponse from danswer.configs.app_configs import INDEX_BATCH_SIZE from danswer.configs.constants import DocumentSource +from danswer.connectors.cross_connector_utils.retry_wrapper import retry_builder from danswer.connectors.interfaces import GenerateDocumentsOutput from danswer.connectors.interfaces import LoadConnector from danswer.connectors.interfaces import PollConnector @@ -35,19 +36,25 @@ MessageType = dict[str, Any] # list of messages in a thread ThreadType = list[MessageType] +basic_retry_wrapper = retry_builder() + def _make_paginated_slack_api_call( call: Callable[..., SlackResponse], **kwargs: Any ) -> Generator[dict[str, Any], None, None]: return make_slack_api_call_paginated( - make_slack_api_rate_limited(make_slack_api_call_logged(call)) + basic_retry_wrapper( + make_slack_api_rate_limited(make_slack_api_call_logged(call)) + ) )(**kwargs) def _make_slack_api_call( call: Callable[..., SlackResponse], **kwargs: Any ) -> SlackResponse: - return make_slack_api_rate_limited(make_slack_api_call_logged(call))(**kwargs) + return basic_retry_wrapper( + make_slack_api_rate_limited(make_slack_api_call_logged(call)) + )(**kwargs) def get_channel_info(client: WebClient, channel_id: str) -> ChannelType: