#35568 [Bug]: Recovered partial stream cost is released from live budget counters
### Check for existing issues
- [x] I searched open and closed issues before filing - [x] [#14457](https://github.com/BerriAI/litellm/issues/14457) covers missing usage recovery for terminated streams, not budget-counter reconciliation after cost has been recovered
### What happened?
The failure hook now recovers partial usage and cost from a stream that failed after delivering chunks, but the budget reservation is finalized as zero before that recovered cost is processed
`async_post_call_failure_hook` first calls `release_budget_reservation`, which reconciles every reserved counter to `actual_cost=0`. Later in the same hook, a valid `combined_usage_object` causes `recovered_response_cost` to be passed to `update_database`
The database writer does more than the original failure report suggested. It writes a failure spend log and schedules durable key, user, team, organization, end-user, and related entity updates. The missing part is the live enforcement path: the failure hook never calls `increment_spend_counters` or reconciles the reservation to `recovered_response_cost`
Until the asynchronous database updates flush and a later counter repair observes them, the shared budge…