> ## Documentation Index
> Fetch the complete documentation index at: https://docs.narrative.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Thinking Setting Not Accepted

> The model supports thinking, but not in the form requested.

**HTTP status:** 400

## Error message

```
model '{model}' does not accept thinking setting '{setting}'
```

## When this error occurs

The model does support thinking, but not the way you asked for it. There are two vocabularies, and a
model takes one, the other, or both:

| Vocabulary | Shape                                           | What it means                         |
| ---------- | ----------------------------------------------- | ------------------------------------- |
| Effort     | `{"type":"effort","level":"low\|medium\|high"}` | How hard to think, on a scale         |
| Budget     | `{"type":"budget","budget_tokens":4096}`        | How many tokens it may spend thinking |

So this error means either the wrong vocabulary for this model (a budget where it takes an effort
level, or the reverse), or an effort level it doesn't offer.

`{"type":"budget","budget_tokens":…}` with fewer than 1024 tokens fails earlier, as a malformed
request body — 1024 is the provider's floor.

## When you'll see it

Support is declared per model **and per platform**, and which platform a run uses depends on its data
plane. So this error arrives at one of two moments:

* **At conversation or run creation (400)** when no platform accepts the setting — a token budget for a
  model that only takes effort levels, say. Nothing about the data plane can rescue it.
* **On the run itself (a `failed` run, not a 400)** when *some* platform accepts it but the one this run
  landed on does not. Creation can't tell: it doesn't resolve which cell the job will execute on.

The message names the cell either way — model and platform — so the second case is not a mystery.

## How to fix

Send the vocabulary the model accepts. `GET /model-inference/models` reports each model's accepted
vocabularies and levels, along with whether its reasoning comes back as readable text.

`{"type":"disabled"}` — asking a model **not** to think — is accepted by every model that can think,
so it never lands here.
