#33622 [Bug]: ollama_chat streaming raises KeyError: 'message' (surfaced as APIConnectionError) when Ollama returns a structured {'error': ...} response
### What happened?
`ollama_chat`'s streaming handler assumes every chunk is success-shaped. When Ollama returns a **structured error** instead — e.g. `{'error': 'error parsing tool call: ...'}` — LiteLLM raises `KeyError: 'message'`, wraps it as `OllamaError`, and it surfaces to callers as **`APIConnectionError`**.
The practical damage is the mislabel: a **JSON syntax error from the model is reported as a connection/timeout failure**. Our agent runtime logged `reason=timeout` / `LLM request timed out` for what was actually malformed tool-call JSON. That cost us two days of misdiagnosis — we went looking at the network and the inference host, because that's what the error said. The upstream error text Ollama helpfully provided never reaches the caller in a usable form.
We hit this **11 times in 48h** in production. Every single `Ollama_chatException` in that window was this bug.
### Root cause (verified against current `main`)
`litellm/llms/ollama/chat/transformation.py` — **the streaming path**:
```python 475: tool_calls = chunk["message"].get("tool_calls") # <-- unguarded subscript ... 548: except KeyError as e: 549: raise OllamaError( 550: message=f"KeyErr…