From fd855b2b57556383e9a2aff5b03423332c48f48e Mon Sep 17 00:00:00 2001 From: leilei3167 Date: Wed, 16 Sep 2026 15:27:29 +0000 Subject: [PATCH] fix(streaming): clear stale response_cost when stream assemble defers --- litellm/main.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/litellm/main.py b/litellm/main.py index b9e4422f497..6322eff9ec4 100644 --- a/litellm/main.py +++ b/litellm/main.py @@ -8739,9 +8739,12 @@ def _stream_builder_model_map_cost(response: ModelResponse) -> float | None: def _set_stream_builder_response_cost(response: ModelResponse, logging_obj: Optional["Logging"]) -> None: response_cost: Final = _stream_builder_response_cost(response, logging_obj) - if response_cost is None: - return hidden_params: Final = response._hidden_params # pyright: ignore[reportPrivateUsage] # no public accessor + if response_cost is None: + # Non-positive usage.cost (or a logging_obj deferral) must leave the field + # absent so token-based pricing can run — clear any earlier stamp. + hidden_params.pop("response_cost", None) + return hidden_params["response_cost"] = response_cost