#32051 stream_chunk_builder raises KeyError('choices') for Responses-API (mode:responses) chunks streamed via /chat/completions; Model Armor streaming hook not fail-open around it
### What happened
Streaming a `mode: responses` model (an OpenAI Responses-API-backed provider) through **`POST /v1/chat/completions`** with `stream=true` returns a 500:
``` litellm.APIError: Error building chunks for logging/streaming usage calculation ```
The underlying error is `KeyError: 'choices'` raised inside `stream_chunk_builder`.
### Root cause
The Responses->ChatCompletions streaming bridge yields the text as `ModelResponseStream` chunks (which have a `choices` key) **plus a trailing raw `ResponseCompletedEvent`** (a subclass of `BaseLiteLLMOpenAIResponseObject`, carrying usage/the assembled response) that has **no `choices` key**.
**Bug 1 - unsafe subscript in `stream_chunk_builder` (`litellm/main.py`).** It indexes every chunk with `chunk["choices"]`, e.g. `next((c for c in chunks if c["choices"]), None)` and `if len(chunk["choices"]) == 0`. `BaseLiteLLMOpenAIResponseObject.__getitem__` (`litellm/types/llms/base.py`) does `return self.__dict__[key]`, which raises `KeyError` when `choices` is absent. The outer handler re-raises it as `APIError("Error building chunks for logging/streaming usage calculation")`.
**Bug 2 - Model Armor streaming hook is not fail-open …