Skip to content

DeepResearch returns empty ResponseFunctionWebSearch.action after exceeding maxToolCalls #600

@Tomoshi3104

Description

@Tomoshi3104

Even after exceeding maxToolCalls, DeepResearch never stops producing ResponseFunctionWebSearch.
However, after that point, ResponseFunctionWebSearch.action becomes empty that causes

So if I set maxToolCalls to 5, DeepResearch returned Response.output with more than 50 of ResponseReasoningItem and ResponseFunctionWebSearch, but only the first 2 of ResponseFunctionWebSearch has valid action parameters.

Example output shown below.

  ResponseOutputItem{webSearchCall=ResponseFunctionWebSearch{id=ws_68affc98f75c8193abaae4fa49b12d4306939ec79bab8479, action=Action{search=Search{query=今週 IT ニュース 日本 2025 最新, type=search, additionalProperties={}}}, status=completed, type=web_search_call, additionalProperties={}}}, 
  ResponseOutputItem{reasoning=ResponseReasoningItem{id=rs_68affc99cbe081938dea99aef23c678206939ec79bab8479, summary=[], type=reasoning, content=, encryptedContent=, status=, additionalProperties={}}}, 
  ResponseOutputItem{webSearchCall=ResponseFunctionWebSearch{id=ws_68affc9aef748193840f030549e3acba06939ec79bab8479, action=Action{search=Search{query=2025年8月 IT ニュース 日本, type=search, additionalProperties={}}}, status=completed, type=web_search_call, additionalProperties={}}}, 
  ResponseOutputItem{reasoning=ResponseReasoningItem{id=rs_68affc9b795481938611baeddf93669c06939ec79bab8479, summary=[], type=reasoning, content=, encryptedContent=, status=, additionalProperties={}}}, 
  ResponseOutputItem{webSearchCall=ResponseFunctionWebSearch{id=ws_68affc9bfba0819398ad9ea0f0b8cef206939ec79bab8479, action=, status=completed, type=web_search_call, additionalProperties={}}}, 
  ResponseOutputItem{reasoning=ResponseReasoningItem{id=rs_68affc9c59b481939ac57623b9aa479506939ec79bab8479, summary=[], type=reasoning, content=, encryptedContent=, status=, additionalProperties={}}}, 
  ResponseOutputItem{webSearchCall=ResponseFunctionWebSearch{id=ws_68affca030cc8193a2584678fe41ccbb06939ec79bab8479, action=, status=completed, type=web_search_call, additionalProperties={}}}, 

I observed this issue in ver 3.1.2, with both o3-deep-research and o4-deep-research-mini.

I also tested the Web Search Tool, but no similar problems.

As per this guide, we should be able to control how many WebSearchCalls DeepResearch can produce.

So I think there is 2 problems.

  1. DeepResearch does not finish producing WebSearchCall even after exceeding maxToolCalls.
  2. After exceeding maxToolCalls, DeepResearch creates WebSearchCall with empty/invalid action, which throws "com.openai.errors.OpenAIInvalidDataException: action is not set"

Please let me know if you need further info.

Metadata

Metadata

Assignees

No one assigned

    Labels

    apibugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions