{"record":{"id":"8687e92d8c6e6213","repo":"BerriAI/litellm","slug":"error-deleting-search-tool-from-db-e","errorCode":null,"errorMessage":"Error deleting search tool from DB: {e}","messagePattern":"Error deleting search tool from DB: (.+?)","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"litellm/proxy/search_endpoints/search_tool_registry.py","lineNumber":114,"sourceCode":"        try:\n            # Get search tool before deletion for response\n            existing_tool: Final = await SearchToolsRepository(prisma_client).table.find_unique(\n                where={\"search_tool_id\": search_tool_id}\n            )\n\n            if not existing_tool:\n                raise Exception(f\"Search tool with ID {search_tool_id} not found\")\n\n            # Delete from DB\n            await SearchToolsRepository(prisma_client).table.delete(where={\"search_tool_id\": search_tool_id})\n\n            return {\n                \"message\": f\"Search tool {search_tool_id} deleted successfully\",\n                \"search_tool_name\": existing_tool.search_tool_name,\n            }\n        except Exception as e:\n            verbose_proxy_logger.exception(\"Error deleting search tool from DB: %s\", e)\n            raise Exception(f\"Error deleting search tool from DB: {e}\")\n\n    async def update_search_tool_in_db(self, search_tool_id: str, search_tool: SearchTool, prisma_client: PrismaClient):\n        \"\"\"\n        Update a search tool in the database.\n\n        Args:\n            search_tool_id: ID of search tool to update\n            search_tool: Updated search tool configuration\n            prisma_client: Prisma client instance\n\n        Returns:\n            Dict with updated search tool data\n        \"\"\"\n        try:\n            search_tool_name: Final = search_tool.get(\"search_tool_name\")\n            litellm_params: Final[str] = safe_dumps(dict(search_tool.get(\"litellm_params\", {})))\n            search_tool_info: Final[str] = safe_dumps(search_tool.get(\"search_tool_info\", {}))\n","sourceCodeStart":96,"sourceCodeEnd":132,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/search_endpoints/search_tool_registry.py#L96-L132","documentation":"Catch-all from the search tool registry delete routine: the Prisma delete on the SearchTools table (after the existence check passed) raised; the original database error text is embedded in the message.","triggerScenarios":"Thrown at litellm/proxy/search_endpoints/search_tool_registry.py:114 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check DB connectivity and logs; retry the delete once the DB error is resolved."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}