fix(proxy): omit request_tags when unset to avoid prisma Json null error

This commit is contained in:
Devin AI 2026-07-16 16:35:59 +00:00
parent e8ed5906f2
commit 6da83e8062
4 changed files with 8 additions and 6 deletions

View file

@ -195,9 +195,9 @@ class _PROXY_LiteLLMManagedFiles(CustomLogger, BaseFileEndpoints):
"created_by": user_api_key_dict.user_id,
"team_id": user_api_key_dict.team_id,
"api_key": user_api_key_dict.api_key or None,
"request_tags": Json(request_tags) if request_tags else None,
"updated_by": user_api_key_dict.user_id,
"status": file_object.status,
**({"request_tags": Json(request_tags)} if request_tags else {}),
},
"update": {
"file_object": file_object.model_dump_json(),

View file

@ -981,7 +981,7 @@ class AnthropicPassthroughLoggingHandler:
_request_tags = _request_metadata.get("tags")
user_api_key_dict = UserAPIKeyAuth(
user_id=_request_metadata.get("user_api_key_user_id", "default-user"),
api_key=_request_metadata.get("user_api_key") or "",
api_key=_request_metadata.get("user_api_key") or None,
team_id=_request_metadata.get("user_api_key_team_id"),
team_alias=_request_metadata.get("user_api_key_team_alias"),
user_role=LitellmUserRoles.CUSTOMER, # Use proper enum value

View file

@ -806,7 +806,7 @@ class VertexPassthroughLoggingHandler:
_request_tags = _request_metadata.get("tags")
user_api_key_dict = UserAPIKeyAuth(
user_id=_request_metadata.get("user_api_key_user_id", "default-user"),
api_key=_request_metadata.get("user_api_key") or "",
api_key=_request_metadata.get("user_api_key") or None,
team_id=_request_metadata.get("user_api_key_team_id"),
team_alias=_request_metadata.get("user_api_key_team_alias"),
user_role=LitellmUserRoles.CUSTOMER, # Use proper enum value

View file

@ -2425,8 +2425,10 @@ async def test_store_unified_object_id_persists_request_identity():
@pytest.mark.asyncio
async def test_store_unified_object_id_no_tags_stores_null_request_tags():
"""When no request tags are present the column is left NULL rather than an empty-list Json."""
async def test_store_unified_object_id_no_tags_omits_request_tags():
"""When no request tags are present the request_tags key must be omitted from the create
payload. Passing None to a Prisma Json? field raises MissingRequiredValueError, which would
break every non-tagged batch/file/response store."""
from litellm.proxy._types import UserAPIKeyAuth
from litellm.types.utils import LiteLLMBatch
@ -2464,7 +2466,7 @@ async def test_store_unified_object_id_no_tags_stores_null_request_tags():
create_data = prisma_client.db.litellm_managedobjecttable.upsert.call_args.kwargs[
"data"
]["create"]
assert create_data["request_tags"] is None
assert "request_tags" not in create_data
assert create_data["api_key"] == "hashed-key-abc"