From 095f5e8399d543f1ab6f5606ab70cf8b24fcb101 Mon Sep 17 00:00:00 2001 From: SparkLabScout Date: Fri, 13 Mar 2026 22:20:11 +0800 Subject: [PATCH] fix: make user-agent header check case-insensitive The setting disable_add_user_agent_to_request_tags was not working when headers used capitalized keys like 'User-Agent' instead of lowercase 'user-agent'. HTTP headers are case-insensitive per RFC 7230, so we now iterate through all header keys and match case-insensitively. Fixes #23553 --- litellm/litellm_core_utils/litellm_logging.py | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/litellm/litellm_core_utils/litellm_logging.py b/litellm/litellm_core_utils/litellm_logging.py index 6f587abcdf1..06fe0237e03 100644 --- a/litellm/litellm_core_utils/litellm_logging.py +++ b/litellm/litellm_core_utils/litellm_logging.py @@ -5063,18 +5063,22 @@ class StandardLoggingPayloadSetup: user_agent_tags: Optional[List[str]] = None headers = proxy_server_request.get("headers", {}) if headers is not None and isinstance(headers, dict): - if "user-agent" in headers: - user_agent = headers["user-agent"] + # Check for case-insensitive "user-agent" header key + user_agent = None + for key in headers: + if key.lower() == "user-agent": + user_agent = headers[key] + break + if user_agent is not None: + if user_agent_tags is None: + user_agent_tags = [] + user_agent_part: Optional[str] = None + if "/" in user_agent: + user_agent_part = user_agent.split("/")[0] + if user_agent_part is not None: + user_agent_tags.append("User-Agent: " + user_agent_part) if user_agent is not None: - if user_agent_tags is None: - user_agent_tags = [] - user_agent_part: Optional[str] = None - if "/" in user_agent: - user_agent_part = user_agent.split("/")[0] - if user_agent_part is not None: - user_agent_tags.append("User-Agent: " + user_agent_part) - if user_agent is not None: - user_agent_tags.append("User-Agent: " + user_agent) + user_agent_tags.append("User-Agent: " + user_agent) return user_agent_tags @staticmethod