From 4be12b29b98e742563666ea197f2b42be0182a99 Mon Sep 17 00:00:00 2001 From: William Espegren <131612909+WilliamEspegren@users.noreply.github.com> Date: Wed, 31 Jul 2024 11:11:52 +0200 Subject: [PATCH] fix: improved error handling for spider tool (#6835) --- api/core/tools/provider/builtin/spider/spider.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/api/core/tools/provider/builtin/spider/spider.py b/api/core/tools/provider/builtin/spider/spider.py index 6fa431b6bb..5bcc56a724 100644 --- a/api/core/tools/provider/builtin/spider/spider.py +++ b/api/core/tools/provider/builtin/spider/spider.py @@ -8,7 +8,13 @@ from core.tools.provider.builtin_tool_provider import BuiltinToolProviderControl class SpiderProvider(BuiltinToolProviderController): def _validate_credentials(self, credentials: dict[str, Any]) -> None: try: - app = Spider(api_key=credentials["spider_api_key"]) - app.scrape_url(url="https://spider.cloud") + app = Spider(api_key=credentials['spider_api_key']) + app.scrape_url(url='https://spider.cloud') + except AttributeError as e: + # Handle cases where NoneType is not iterable, which might indicate API issues + if 'NoneType' in str(e) and 'not iterable' in str(e): + raise ToolProviderCredentialValidationError('API is currently down, try again in 15 minutes', str(e)) + else: + raise ToolProviderCredentialValidationError('An unexpected error occurred.', str(e)) except Exception as e: - raise ToolProviderCredentialValidationError(str(e)) + raise ToolProviderCredentialValidationError('An unexpected error occurred.', str(e))