#34574 Ollama chat: reasoning_effort mapping crashes (unhashable dict) and wrongly forces think=True on non-thinking models
### What happened
`OllamaChatConfig.map_openai_params` maps `reasoning_effort` onto Ollama's `think` parameter with a set-membership test. That single line has two bugs, and it breaks any request carrying `reasoning_effort` against an Ollama model:
```python # litellm/llms/ollama/chat/transformation.py (v1.95.0, ~line 184) if param == "reasoning_effort" and value is not None: if model.startswith("gpt-oss"): optional_params["think"] = value else: optional_params["think"] = value in {"low", "medium", "high"} # <-- here ```
**Mode 1 — crash on a non-string value.** If `reasoning_effort` is a dict (which happens on the `/v1/responses` path — see below), `value in {...}` raises:
``` TypeError: unhashable type: 'dict' ```
surfaced to the caller as `litellm.APIConnectionError: unhashable type: 'dict'` (HTTP 500).
**Mode 2 — wrong semantics for a valid string.** Even with a valid `reasoning_effort="medium"`, the code assigns `think = ("medium" in {"low","medium","high"})` → `think = True`, and forwards it to a model that has no thinking capability. Ollama then rejects the whole request:
``` Ollama_chatException - {"error":"\"qwen3-coder:30b\" does not supp…