#28735 [Bug]: Synthetic include_usage chunk violates OpenAI spec — usage event has non-empty choices instead of choices: []`
### Check for existing issues
- [x] I have searched the existing issues and checked that my issue is not a duplicate.
### What happened?
Related: #8450 (same symptom, closed stale), PR #8751 (proposed fix, not merged).
With `stream: true` and `stream_options: {"include_usage": true}`, the OpenAI streaming spec requires the final usage chunk to have **`choices: []`**. LiteLLM emits a synthetic usage chunk at stream end with a **non-empty** `choices` array (see log output below).
OpenAI's documented shape for the final usage chunk:
```json { "choices": [], "usage": { "prompt_tokens": 13, "completion_tokens": 20, "total_tokens": 33 } } ```
Spec reference: [Chat Completions streaming — `include_usage`](https://platform.openai.com/docs/api-reference/chat/streaming)
> The usage field on this chunk shows the token usage statistics for the entire request, and **the choices field will always be an empty array**.
### Steps to Reproduce
```bash curl -N 'http://127.0.0.1:4000/v1/chat/completions' \ -H 'Authorization: Bearer sk-...' \ -H 'Content-Type: application/json' \ -d '{ "model": "bedrock-claude-sonnet-4-6", "messages": [{"role": "user", "content": "Say hello…