tools while explicitly sending a non-none reasoning_effort gets a 400 from upstream: Function tools with reasoning_effort are not supported .... This is an official OpenAI restriction introduced with the GPT-5.4 series, intended to move tool calling onto /v1/responses.
We measured this in the default group on September 2: all four of low, medium, high and xhigh trigger it, while omitting the parameter does not. Whether it fires also depends on which upstream route the request lands on, so the same model can return 200 now and 400 later — “it worked last time” is not evidence that you are safe.
Two ways out: move tool-carrying requests to /v1/responses (keeping both reasoning and tools), or set reasoning_effort="none" explicitly (keeping the endpoint, giving up reasoning). The new page has the measurements, the trade-off between the two, a full before/after tool-calling code comparison, and a post-migration checklist.
📖 Endpoint & Migration
← Back to Live Updates · 📚 Monthly Archive