Gpt-5.4 ignores reasoning_effort="none" when max_completion_tokens is used
OpenAI Developer Community
April 2, 2026
Hi!
Thanks for the clear repro and raising this!
I can confirm:
chat.completions behaves correctly with reasoning_effort: "none" on its own, but when adding max_completion_tokens, it then ignores none, uses the whole budget on reasoning tokens, and returns an empty string with finish_reason: "length".
One possible solution is to switch this call to the Responses API and use:
response = client.responses.create(
model="gpt-5.4",
input="Explain cats to dogs.",
reasoning={"effort": "none"},
max_output_tokens=100,
)
That returns normal text with reasoning_tokens: 0.
Discussion in the ATmosphere