You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Tool definitions sent to models that cannot call tools (Vertex Gemini image models reject every request) #41464
Unable to submit request because the model does not support function calling.
Cause
capabilities.toolcall is set from provider config (provider.ts:1236) but never read when building a request. resolveTools in session/llm/request.ts filters only on permission rules and the per-message tools map, so all ~12 tools get declared regardless of the model.
Why it's hard to work around
The error names the model, so it looks like a provider/model problem.
Setting tool_call: false in config appears to be the fix but does nothing, since the flag isn't consulted in this path.
Denying tools by name in an agent isn't enough — agents start from "*": "allow", and you can't name a plugin-injected tool you don't know exists. Only permission: {"*": deny} works.
Repro
Configure a Vertex/Google image model, e.g. gemini-2.5-flash-image.
Send any message with the stock build agent.
Request fails with the error above. Capturing the outgoing request shows a tools array with 12 functionDeclarations.
This issue might be a duplicate of an existing issue. Please check:
Config tool_call: false does not disable tools #35432: Same root cause — capabilities.toolcall is set from provider config but never read when building LLM requests, so tools are always sent regardless of the tool_call: false config flag. That issue describes the same prompt-loop bug with a different provider (morphllm), but the fix would cover this case too.
If you believe these are distinct enough to warrant a separate issue, please let a maintainer know.
Activity
github-actions commentedon Aug 10, 2026
This issue might be a duplicate of an existing issue. Please check:
tool_call: falsedoes not disable tools #35432: Same root cause —capabilities.toolcallis set from provider config but never read when building LLM requests, so tools are always sent regardless of thetool_call: falseconfig flag. That issue describes the same prompt-loop bug with a different provider (morphllm), but the fix would cover this case too.If you believe these are distinct enough to warrant a separate issue, please let a maintainer know.
github-actions commentedon Oct 9, 2026
To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.