From 2f927fef3bcf662e221bb3b9b8cf8147291d4e6e Mon Sep 17 00:00:00 2001 From: Harshit28j Date: Mon, 2 Mar 2026 21:15:52 +0530 Subject: [PATCH] Fix root cause: model_call_details stored None for litellm_trace_id Logging.__init__ stored the raw litellm_trace_id parameter (None when not explicitly provided) in model_call_details, while self.litellm_trace_id always held a valid UUID. When get_standard_logging_object_payload() failed, both the DB and Langfuse fell back to kwargs["litellm_trace_id"] which was None, causing each to generate different random UUIDs. Now model_call_details stores self.litellm_trace_id (always valid), so all fallback paths use the same ID. Co-Authored-By: Claude Opus 4.6 --- litellm/litellm_core_utils/litellm_logging.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/litellm/litellm_core_utils/litellm_logging.py b/litellm/litellm_core_utils/litellm_logging.py index d5419c98685..73512f7a12b 100644 --- a/litellm/litellm_core_utils/litellm_logging.py +++ b/litellm/litellm_core_utils/litellm_logging.py @@ -405,7 +405,7 @@ class Logging(LiteLLMLoggingBaseClass): self.passthrough_guardrails_config: Optional[Dict[str, Any]] = None self.model_call_details: Dict[str, Any] = { - "litellm_trace_id": litellm_trace_id, + "litellm_trace_id": self.litellm_trace_id, "litellm_call_id": litellm_call_id, "input": _input, "litellm_params": litellm_params,