diff --git a/litellm/proxy/common_utils/http_parsing_utils.py b/litellm/proxy/common_utils/http_parsing_utils.py index 1fb0da275edf..63b904602ac9 100644 --- a/litellm/proxy/common_utils/http_parsing_utils.py +++ b/litellm/proxy/common_utils/http_parsing_utils.py @@ -1,6 +1,7 @@ import json from typing import Dict, List, Optional +import orjson from fastapi import Request, UploadFile, status from litellm._logging import verbose_proxy_logger @@ -32,13 +33,10 @@ async def _read_request_body(request: Optional[Request]) -> Dict: if not body: return {} - # Decode the body to a string - body_str = body.decode() - # Attempt JSON parsing (safe for untrusted input) - return json.loads(body_str) + return orjson.loads(body) - except json.JSONDecodeError: + except (json.JSONDecodeError, orjson.JSONDecodeError): # Log detailed information for debugging verbose_proxy_logger.exception("Invalid JSON payload received.") return {}