Hi all,
I’m running into a strange behavior with the gpt-4.1-2025-04-14
model and wanted to check if others have seen this too.
We use both the Chat Completions API and the Responses API, with ~10 different tools configured. Most of the time tool invocation works fine. However, in some cases, the model produces text that indicates it’s about to call a tool (e.g., “One moment please!”, “Hang tight…”, “I’ll take care of that for you”), but no tool call is actually emitted in the response.
Here’s an example of what we receive:
I’ll now look for a way to automatically restore your M drive. If I can, I’ll do it for you; otherwise, I’ll guide you through a quick fix. One moment please!
But at this point, no tool call appears in the API response. It just ends there as plain text with finish_reason: stop
.
Some observations:
-
Seems to happen more frequently with certain inputs.
-
Occurs intermittently — not every request.
-
Happens in both APIs (
chat.completions
andresponses
). -
I can also reproduce this directly in the OpenAI Playground, so it’s not just my integration.
-
Tools are otherwise working correctly when the model does decide to invoke them.
Questions for the community:
-
Has anyone else encountered this behavior with GPT-4.1 / 4o?
-
Any known workarounds (e.g., forcing
tool_choice: required
, adjusting prompt style, etc.)? -
Could this be a bug in tool invocation for GPT-4.1?
Thanks in advance for any insights!