# Decision: output token ceiling Once every option had to carry runnable T-SQL, the candidate JSON outgrew the old 2 048-token budget. The user waited 38 seconds and got "The analyst model returned malformed JSON" — a truncated response has no closing brace. Both calls default to 4 096 now, and the failure message names the character count and tells the user which extra parameter raises the ceiling, because `cfg.extra` is spread after `max_tokens`. The general rule recorded here: when a prompt asks a model for more content, check the budget before blaming the model's judgement. Related: [[Analyst model]], [[Placeholder SQL is dropped]].