ErrorsOpenAI 400 param_locked
Preview — this page is not yet indexed. It publishes once we have a real production observation count for this error (see /errors for the taxonomy dataset).

OpenAI 400 Parameter locked to a fixed value

Why am I getting OpenAI 400 Parameter locked to a fixed value?

A chat completion 400s with `unsupported_value` naming `temperature`, only on OpenAI's reasoning-mode models (gpt-5.6-sol, gpt-5.6-terra) — the exact same call succeeds unchanged on gpt-5.6-luna.

Verified 2026-08-08 source

Is this your error?

HTTP 400
{"error":{"message":"Unsupported value: 'temperature' does not support 0.4 with this model. Only the default (1) value is supported.","type":"invalid_request_error","param":"temperature","code":"unsupported_value"}}

Why this happens on OpenAI

Source: https://platform.openai.com/docs, verified 2026-08-08.

Reasoning-mode models route the prompt through an internal planning pass before sampling the final response, and OpenAI pins temperature to 1 during that pass to keep the reasoning trace stable — a custom value is rejected outright rather than silently ignored, which is the opposite of Anthropic's non-reasoning models, where temperature is always honored.

Locked to 1 on: gpt-5.6-sol, gpt-5.6-terra. Reasoning-mode models ignore custom temperature and always sample at 1.

The fix

client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])

response = client.chat.completions.create(
    model=MODEL,
    messages=[{"role": "user", "content": "Say hello in one sentence."}],
)

print(response.choices[0].message.content)

What not to do

Don't retry this call unchanged — it is not a transient failure. Fix the request body first; retrying the same malformed request returns the same error every time.

Evidence

Reproduced against OpenAI's own documentation and the fixture at code-examples/python/openai/chat.py on 2026-08-08; not yet observed in production traffic.

FAQ

Why can't I set temperature on gpt-5.6-sol or gpt-5.6-terra?

Both are reasoning-mode models, and OpenAI locks temperature to its default of 1 on that class — the field is present in the API but any other value returns a 400, not a silently-ignored parameter.

Which OpenAI models accept a custom temperature?

Non-reasoning models like gpt-5.6-luna accept the full 0–2 range; the reasoning-mode tier (gpt-5.6-sol, gpt-5.6-terra) does not.

OpenAI provider hubOpenAI rate limitsGet an OpenAI API key