tools.web_search cannot be disabled when using reasoning_effort = minimal resulting in a failure

Resolved 💬 2 comments Opened Oct 9, 2025 by MiCkSoftware Closed Jan 10, 2026
💡 Likely answer: A maintainer (etraut-openai, contributor) responded on this thread — see the highlighted reply below.

What version of Codex is running?

v0.46.0

Which model were you using?

gpt-5

What platform is your computer?

macos

What steps can reproduce the bug?

When launching Codex CLI v0.46.0 with reasoning_effort = minimal, the client still sends web_search tool in the request, resulting in a 400 Bad Request error. The flag tools.web_search=false (or equivalents) is ignored, so it’s impossible to run Codex in minimal mode offline.

Steps to reproduce

codex -m "gpt-5" \
  --config model_reasoning_effort=minimal \
  --config tools.web_search=false \
  --sandbox read-only \
  --ask-for-approval never -- "hello"

Expected behavior
• The request should be accepted.
• web_search should be disabled (or omitted) in the request payload.
• Codex should operate with minimal reasoning and no web access.

Actual behavior
⚠️ stream error: unexpected status 400 Bad Request: {
"error": {
"message": "The following tools cannot be used with reasoning.effort 'minimal': web_search.",
"type": "invalid_request_error",
"param": "tools",
"code": null
}
}

What is the expected behavior?

web search shall be disabled in such scenario to avoid faiilure

What do you see instead?

⚠️ stream error: unexpected status 400 Bad Request: {
"error": {
"message": "The following tools cannot be used with reasoning.effort 'minimal': web_search.",
"type": "invalid_request_error",
"param": "tools",
"code": null
}
}

Additional information

The problem is happening even when web search is diabled in config.toml :

[tools]
web_search = false

View original on GitHub ↗

2 Comments

agileandy · 10 months ago

this is happening with codex all the time for me...

• Model changed to gpt-5-codex with low reasoning

› hi

■ unexpected status 400 Bad Request: {"success":false,"error":{"issues":[{"code":"invalid_union_discriminator","options":
["function","web_search_preview","web_search_preview_2025_03_11","web_search","web_search_2025_08_26"],"path":["tools",5,"type"],"message":"Invalid discriminator value.
Expected 'function' | 'web_search_preview' | 'web_search_preview_2025_03_11' | 'web_search' | 'web_search_2025_08_26'"}],"name":"ZodError"}}

• Model changed to gpt-5-codex with high reasoning

› what does this do?

■ unexpected status 400 Bad Request: {"success":false,"error":{"issues":[{"code":"invalid_union_discriminator","options":
["function","web_search_preview","web_search_preview_2025_03_11","web_search","web_search_2025_08_26"],"path":["tools",5,"type"],"message":"Invalid discriminator value.
Expected 'function' | 'web_search_preview' | 'web_search_preview_2025_03_11' | 'web_search' | 'web_search_2025_08_26'"}],"name":"ZodError"}}

etraut-openai contributor · 7 months ago

Closing old issue.