# Truncated answers: read stop_reason, then the budgets

## Symptom
Responses end mid-thought. The message `stop_reason` is `max_tokens` instead of `end_turn`.

## Confirm the cause
`stop_reason: max_tokens` means the turn hit the output ceiling. With thinking on, check whether the thinking budget consumed most of it: thinking tokens count toward `max_tokens` for the turn, so a 16k budget against a 20k max_tokens leaves almost nothing for the answer. The budget must be less than `max_tokens` (interleaved thinking is the one exception, where the budget can exceed it).

## Fix
1. Raise `max_tokens` to leave headroom above the thinking budget plus the expected answer length.
2. Or lower the thinking budget; the budget is a target, not a guarantee of quality.
3. Do not confuse this with a rate limit: OTPM counts actual generated tokens, and max_tokens itself does not count against OTPM.

## Verify
The next response on the same prompt returns `stop_reason: end_turn` with a complete answer. If it still truncates, the budget is still too large relative to max_tokens.