From 79c308c33aab25c8460427c45801068a37862c72 Mon Sep 17 00:00:00 2001 From: Arif Date: Sun, 29 Mar 2026 16:40:00 +0600 Subject: [PATCH] I have updated the metadata parser helpers across backend endpoints to ignore and bypass the proxy enterprise premium check specifically when the received values are empty collections (like [] or {}). This effectively ensures that users without premium privileges can safely clear out premium fields or have the UI send default empty collections safely without encountering false-positive Feature Unavailable backend errors. The following files have been updated: litellm/proxy/management_endpoints/key_management_endpoints.py -> Updated prepare_metadata_fields to verify v != [] and v != {} before raising the enterprise check. litellm/proxy/management_endpoints/common_utils.py -> Updated _set_object_metadata_field so backend validation logic acts consistently for updating API Keys, Projects, and Teams. --- litellm/proxy/management_endpoints/common_utils.py | 4 +++- .../proxy/management_endpoints/key_management_endpoints.py | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/litellm/proxy/management_endpoints/common_utils.py b/litellm/proxy/management_endpoints/common_utils.py index efc42d3355c..3a484e17b7e 100644 --- a/litellm/proxy/management_endpoints/common_utils.py +++ b/litellm/proxy/management_endpoints/common_utils.py @@ -338,7 +338,9 @@ def _set_object_metadata_field( value: Value to set for the field """ if field_name in LiteLLM_ManagementEndpoint_MetadataFields_Premium: - _premium_user_check(field_name) + # Skip the premium check for empty collections ([] or {}). + if value is not None and value != [] and value != {}: + _premium_user_check(field_name) object_data.metadata = object_data.metadata or {} object_data.metadata[field_name] = value diff --git a/litellm/proxy/management_endpoints/key_management_endpoints.py b/litellm/proxy/management_endpoints/key_management_endpoints.py index 831922ec3f9..a9973710bb9 100644 --- a/litellm/proxy/management_endpoints/key_management_endpoints.py +++ b/litellm/proxy/management_endpoints/key_management_endpoints.py @@ -1487,7 +1487,8 @@ def prepare_metadata_fields( if k in LiteLLM_ManagementEndpoint_MetadataFields_Premium: from litellm.proxy.utils import _premium_user_check - _premium_user_check(k) + if v is not None and v != [] and v != {}: + _premium_user_check(k) casted_metadata[k] = v except Exception as e: