From 6b13ef266c61b35b631bd486b7eff433656f204d Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 7 Mar 2026 02:47:58 +0000 Subject: [PATCH] fix: handle non-string team_alias/key_alias in PolicyMatchContext Prevent Pydantic validation errors when team_alias or key_alias are not proper strings (e.g. MagicMock in tests). Only pass values that are actually strings; default to None otherwise. Co-authored-by: Ishaan Jaff --- litellm/proxy/litellm_pre_call_utils.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/litellm/proxy/litellm_pre_call_utils.py b/litellm/proxy/litellm_pre_call_utils.py index ee97960c0a2..d0fabe90103 100644 --- a/litellm/proxy/litellm_pre_call_utils.py +++ b/litellm/proxy/litellm_pre_call_utils.py @@ -1848,9 +1848,11 @@ async def add_guardrails_from_policy_engine( # Extract tags and build context all_tags = get_tags_from_request_body(data) or None + _team_alias = user_api_key_dict.team_alias + _key_alias = user_api_key_dict.key_alias context = PolicyMatchContext( - team_alias=user_api_key_dict.team_alias, - key_alias=user_api_key_dict.key_alias, + team_alias=_team_alias if isinstance(_team_alias, str) else None, + key_alias=_key_alias if isinstance(_key_alias, str) else None, model=data.get("model"), tags=all_tags, )