#29913 [Bug]: Streaming /v1/responses success logger crashes with "'dict' object has no attribute 'usage'" → no spend log written, request goes uncharged
### Check for existing issues
- [x] I have searched the existing issues and checked that my issue is not a duplicate.
### What happened?
On the proxy, **streaming** requests to `/v1/responses` (OpenAI Responses API surface, `stream=True`) never get a `LiteLLM_SpendLogs` row written, so they are not charged. The client still receives a correct 200 streamed body, but the success-logging callback crashes non-blockingly with:
``` LiteLLM.LoggingError: [Non-Blocking] ... 'dict' object has no attribute 'usage' ```
The crash happens **only** on the streaming Responses path:
| Path | Spend log written? | |---|---| | `/v1/responses`, `stream=True` | ❌ **crashes — no row** | | `/v1/responses`, `stream=False` (blocking) | ✅ fine | | `/v1/chat/completions`, `stream=True` | ✅ fine |
Because cost is never computed for the streamed responses request, the gateway silently under-bills that surface. The `x-litellm-response-cost` response header is also unreliable here (it's a pre-stream estimate flushed before the body), so the missing spend row is the real signal.
## Root cause
`litellm/litellm_core_utils/litellm_logging.py`, in `Logging._get_assembled_streaming_response`:
```python elif …