From 856701089762b68f0ea55db9c375703f1f934a18 Mon Sep 17 00:00:00 2001 From: leilei3167 Date: Wed, 23 Sep 2026 05:06:31 +0000 Subject: [PATCH] fix(streaming): drop zero usage.cost in calculate_total_usage Greptile P1: Vertex stream chunks can leave usage.cost=0 on assembled usage; stamping that value bypasses token-based stream spend. Reuse _resolve_provider_reported_cost so non-positive leftovers are omitted. --- litellm/litellm_core_utils/streaming_handler.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/litellm/litellm_core_utils/streaming_handler.py b/litellm/litellm_core_utils/streaming_handler.py index 1930671821b..61d586251cd 100644 --- a/litellm/litellm_core_utils/streaming_handler.py +++ b/litellm/litellm_core_utils/streaming_handler.py @@ -2604,8 +2604,9 @@ def calculate_total_usage(chunks: list[ModelResponse]) -> Usage: if isinstance(latest_usage_chunk, dict) else getattr(latest_usage_chunk, "cost", None) ) - if latest_cost is not None: - returned_usage_chunk.cost = latest_cost + resolved_cost: Final = CustomStreamWrapper._resolve_provider_reported_cost(latest_cost) + if resolved_cost is not None: + returned_usage_chunk.cost = resolved_cost return returned_usage_chunk