diff --git a/api/core/plugin/manager/tool.py b/api/core/plugin/manager/tool.py index 36e6fb98ce..23a390f4aa 100644 --- a/api/core/plugin/manager/tool.py +++ b/api/core/plugin/manager/tool.py @@ -48,8 +48,10 @@ class PluginToolManager(BasePluginManager): tool_provider_id = GenericProviderID(provider) def transformer(json_response: dict[str, Any]) -> dict: - for tool in json_response.get("data", {}).get("declaration", {}).get("tools", []): - tool["identity"]["provider"] = tool_provider_id.provider_name + data = json_response.get("data") + if data: + for tool in data.get("declaration", {}).get("tools", []): + tool["identity"]["provider"] = tool_provider_id.provider_name return json_response diff --git a/api/core/tools/plugin_tool/provider.py b/api/core/tools/plugin_tool/provider.py index 875072cb3e..3616e426b9 100644 --- a/api/core/tools/plugin_tool/provider.py +++ b/api/core/tools/plugin_tool/provider.py @@ -48,7 +48,9 @@ class PluginToolProviderController(BuiltinToolProviderController): """ return tool with given name """ - tool_entity = next(tool_entity for tool_entity in self.entity.tools if tool_entity.identity.name == tool_name) + tool_entity = next( + (tool_entity for tool_entity in self.entity.tools if tool_entity.identity.name == tool_name), None + ) if not tool_entity: raise ValueError(f"Tool with name {tool_name} not found")