From f752e2aa968d5a856d55dbc26c6c4187287febc7 Mon Sep 17 00:00:00 2001 From: Yash Rathod <52967673+yash30389@users.noreply.github.com> Date: Wed, 28 Oct 2026 14:02:39 +0530 Subject: [PATCH] Refactor tag handling for premium users --- .../management_endpoints/key_management_endpoints.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/litellm/proxy/management_endpoints/key_management_endpoints.py b/litellm/proxy/management_endpoints/key_management_endpoints.py index 1dad3717cc4..a4036fd05b6 100644 --- a/litellm/proxy/management_endpoints/key_management_endpoints.py +++ b/litellm/proxy/management_endpoints/key_management_endpoints.py @@ -1666,10 +1666,12 @@ async def _common_key_generation_helper( # Set tags on the new key if "tags" in data_json: from litellm.proxy.proxy_server import premium_user - + tags = data_json.get("tags") if premium_user is not True and isinstance(tags, list) and len(tags) > 0: - raise ValueError(f"Only premium users can add tags to keys. {CommonProxyErrors.not_premium_user.value}") + raise ValueError( + f"Only premium users can add tags to keys. {CommonProxyErrors.not_premium_user.value}" + ) _metadata: Final = data_json.get("metadata") if tags is None: @@ -1677,11 +1679,11 @@ async def _common_key_generation_helper( _metadata.pop("tags", None) data_json.pop("tags", None) else: - if not _metadata: + if not isinstance(_metadata, dict): data_json["metadata"] = {"tags": tags} else: data_json["metadata"]["tags"] = tags - data_json.pop("tags") + data_json.pop("tags", None) # Validate MCP servers in object_permission are within team scope _is_proxy_admin_caller: Final = user_api_key_dict.user_role == LitellmUserRoles.PROXY_ADMIN.value