fix(logging): preserve null end user in callbacks (#38642)

This commit is contained in:
yucheng-berri 2026-08-28 10:54:53 -07:00 • committed by GitHub
parent 5bcd494e88
commit c5cdd2e8e1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 36 additions and 1 deletions

View file

@ -6058,7 +6058,7 @@ def get_standard_logging_object_payload(
prompt_tokens=usage_dict.get("prompt_tokens", 0),
completion_tokens=usage_dict.get("completion_tokens", 0),
request_tags=request_tags,
end_user=end_user_id or "",
end_user=end_user_id,
api_base=StandardLoggingPayloadSetup.strip_trailing_slash(litellm_params.get("api_base", "")) or "",
model_group=_model_group,
model_id=_model_id,

View file

@ -3727,6 +3727,41 @@ def test_get_standard_logging_object_payload_includes_litellm_call_id(logging_ob
assert payload["litellm_call_id"] == call_id
def test_get_standard_logging_object_payload_preserves_absent_end_user_as_none(logging_obj):
from datetime import datetime
from typing import Final
from litellm.litellm_core_utils.litellm_logging import get_standard_logging_object_payload
from litellm.types.utils import StandardLoggingPayload
now: Final = datetime.now()
payload: Final[StandardLoggingPayload | None] = get_standard_logging_object_payload(
kwargs={
"model": "gpt-4o",
"messages": [],
"litellm_params": {
"metadata": {
"user_api_key_alias": "test-key-alias",
"user_api_key_user_id": "test-key-user",
"user_api_key_end_user_id": None,
},
"proxy_server_request": {"body": {}},
},
},
init_response_obj={},
start_time=now,
end_time=now,
logging_obj=logging_obj,
status="success",
)
assert payload is not None
assert payload["metadata"]["user_api_key_alias"] == "test-key-alias"
assert payload["metadata"]["user_api_key_user_id"] == "test-key-user"
assert payload["metadata"]["user_api_key_end_user_id"] is None
assert payload["end_user"] is None
# ── Azure Model Router selected-model attribution ────────────────────────────