{"record":{"id":"1f311341e798764e","repo":"BerriAI/litellm","slug":"failed-to-update-policy-for-tool-data-tool-name","errorCode":null,"errorMessage":"Failed to update policy for tool '{data.tool_name}'","messagePattern":"Failed to update policy for tool '(.+?)'","errorType":"http","errorClass":"HTTPException","httpStatus":500,"severity":"error","filePath":"litellm/proxy/management_endpoints/tool_management_endpoints.py","lineNumber":678,"sourceCode":"                team_id=data.team_id,\n                key_hash=data.key_hash,\n            )\n\n        if data.input_policy is None and data.output_policy is None:\n            raise HTTPException(\n                status_code=400,\n                detail=\"At least one of input_policy or output_policy must be provided\",\n            )\n\n        updated: Final = await db_update_tool_policy(\n            prisma_client=prisma_client,\n            tool_name=data.tool_name,\n            updated_by=user_api_key_dict.user_id,\n            input_policy=data.input_policy,\n            output_policy=data.output_policy,\n        )\n        if updated is None:\n            raise HTTPException(\n                status_code=500,\n                detail=f\"Failed to update policy for tool '{data.tool_name}'\",\n            )\n        registry = get_tool_policy_registry()\n        if registry.is_initialized():\n            await registry.sync_tool_policy_from_db(prisma_client)\n        return ToolPolicyUpdateResponse(\n            tool_name=updated.tool_name,\n            input_policy=updated.input_policy,\n            output_policy=updated.output_policy,\n            updated=True,\n        )\n    except HTTPException:\n        raise\n    except Exception as e:\n        verbose_proxy_logger.exception(\"Error updating tool policy: %s\", e)\n        raise HTTPException(status_code=500, detail=str(e))\n","sourceCodeStart":660,"sourceCodeEnd":696,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/management_endpoints/tool_management_endpoints.py#L660-L696","documentation":"Error \"Failed to update policy for tool '{data.tool_name}'\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/proxy/management_endpoints/tool_management_endpoints.py:678 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the tool name exists, check proxy logs for the failure, then retry."],"exampleFix":null,"handlingStrategy":null,"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"}