Gpt-4o-mini calls non-existent function tool

So I have an assistant that uses 5 tools.


And when I run the assistant in the API usually it lists those 5 tools (plus file_search and code_interpreter which are disabled in the UI)

tools=[CodeInterpreterTool(type='code_interpreter'), FileSearchTool(type='file_search'), FunctionTool(function=FunctionDefinition(name='read_article', description='Upload or retrieve the article', parameters={'type': 'object', 'properties': {'file_content': {'type': 'string', 'description': 'The content of the uploaded or retrieved article'}}, 'required': ['file_content']}), type='function'), FunctionTool(function=FunctionDefinition(name='get_latest_components', description='Return the saved components for the article analysis', parameters={'type': 'object', 'properties': {}, 'required': []}), type='function'), FunctionTool(function=FunctionDefinition(name='save_text', description='Save the text of a component of the article analysis to a list', parameters={'type': 'object', 'properties': {'component': {'type': 'string', 'description': "The type of component e.g. ('Summary', 'Lecture_connection', 'Differing_perspectives', 'Left_out')"}, 'text': {'type': 'string', 'description': 'The text of the current component of the article analysis'}}, 'required': ['component', 'text']}), type='function'), FunctionTool(function=FunctionDefinition(name='download_analysis', description='Create download file including the article analysis and rubric score.', parameters={'type': 'object', 'properties': {'article_analysis': {'type': 'string', 'description': 'The article analysis in its final form'}, 'rubric': {'type': 'string', 'description': 'The rubric score for the article, based on the rubric found in the file_search tool'}}, 'required': ['article_analysis', 'rubric']}), type='function')]

But sometimes it calls a tool not on the list called msearch:

required_action=RequiredAction(submit_tool_outputs=RequiredActionSubmitToolOutputs(tool_calls=
[RequiredActionFunctionToolCall(id='call_javyGU9skbT1R48mBdsF7Z2g', 
function=Function(arguments='{"queries":["rubric for article analysis","evaluation criteria for article analysis"]}', 
name='msearch'),
 type='function')]),
 type='submit_tool_outputs'), 
response_format='auto', started_at=1721824039, 
status='requires_action', thread_id='thread_kdb39kfQi8dAxDSwNXGLnZa6', tool_choice='auto',
tools=[CodeInterpreterTool(type='code_interpreter'), 
FileSearchTool(type='file_search'), 
FunctionTool(function=FunctionDefinition(name='read_article', description='Upload or retrieve the article', parameters={'type': 'object', 'properties': {'file_content': {'type': 'string', 'description': 'The content of the uploaded or retrieved article'}}, 'required': ['file_content']}), type='function'), 
FunctionTool(function=FunctionDefinition(name='get_latest_components', description='Return the saved components for the article analysis', parameters={'type': 'object', 'properties': {}, 'required': []}), type='function'), 
FunctionTool(function=FunctionDefinition(name='save_text', description='Save the text of a component of the article analysis to a list', parameters={'type': 'object', 'properties': {'component': {'type': 'string', 'description': "The type of component e.g. ('Summary', 'Lecture_connection', 'Differing_perspectives', 'Left_out')"}, 'text': {'type': 'string', 'description': 'The text of the current component of the article analysis'}}, 'required': ['component', 'text']}), type='function'), 
FunctionTool(function=FunctionDefinition(name='download_analysis', description='Create download file including the article analysis and rubric score.', parameters={'type': 'object', 'properties': {'article_analysis': {'type': 'string', 'description': 'The article analysis in its final form'}, 'rubric': {'type': 'string', 'description': 'The rubric score for the article, based on the rubric found in the file_search tool'}}, 'required': ['article_analysis', 'rubric']}), type='function')],

I’ve searched the prompt and there’s no reference to msearch. I assume this is a hallucination. I’m beginning to think mini is just not appropriate for function calling. Anyone else seen this or have a solution?

To expand this thread maybe a little into gpt4-mini problems: in 50 % of cases it tells me it doesn’t have vision capabilities and just refuses, breaking the pipeline. Maybe it has been trained on a lot but not TOLD how to handle request about those skills well.

I’m having the same problem. Did you find the solution already?

I’m seeing this pop up more recently - msearch I believe is the internal file search tool - but for some reason it gets sent to my app as a tool request. Hopefully they know about it as an issue.

I’ve received that before as well. It’s like it knows it’s supposed to use file_search but tries to use msearch. It’s very frustrating. Doesn’t seem to happen in playground but through my app api it does. Strange. They really need to get this fixed.

Did you find any solution for this?

This topic has a report of the same behavior File_search Not Working with Function Calls—Same Setup Works Without Them! Any Fixes?

+1 to this, OpenAI is requesting msearch to be resolved on our side.
How can we get further assistance?

Been waiting months for some kind of response to this - only happens for me with gpt-4o-mini.

I, too, am seeing the msearch… it is an unknown function call when passing web content to it… model is 4o-mini, vector storage exists and file search is on for it.

Same problem here, it happens only on the 4o-mini, not the 4o…
Current solution for me is just answer with: “I cant give an answer to that, use your internal file_search function”. Sometimes it works, most of the time not…