#33273 Router mid-stream fallback drops pre-fallback partial token usage from combined usage
### What happened?
When a streaming `Router` completion fails mid-stream and falls back to another deployment, the token usage already consumed before the failure (the partial stream) is silently dropped from the final combined usage. Only the fallback deployment's own usage ends up on the response, so cost/usage tracking undercounts every mid-stream fallback.
### Where
`litellm/router.py`, `Router._combine_fallback_usage` (lines 1892-1909):
```python @staticmethod def _combine_fallback_usage( fallback_item: ModelResponseStream, complete_response_object_usage: Optional[Usage], ) -> None: """Merge partial-stream usage with fallback-stream usage on the chunk.""" from litellm.cost_calculator import BaseTokenUsageProcessor
usage = cast(Optional[Usage], getattr(fallback_item, "usage", None)) usage_objects = [usage] if usage is not None else [] if ( complete_response_object_usage is not None and hasattr(complete_response_object_usage, "usage") and complete_response_object_usage.usage is not None # type: ignore ): usage_objects.append(complete_response_object_usage) combined_usage = BaseTokenUsageProcessor.combine_uā¦