Where does the bug appear (feature/product)?
Cursor CLI
Describe the Bug
When an ACP client requests the list of available models, the server returns model variant IDs with thinking=true hardcoded for several models, even when thinking is disabled in Cursor Settings or the user’s plan/permissions do not allow thinking mode. The client has no choice but to use the model variant ID as provided, so it sends thinking=true back when selecting the model. The subsequent request fails because thinking is not permitted. There is no way for the client to override the thinking parameter.
ACP Response Example:
The following is the actual initialize response received by the client. Note that claude-opus-4-6, claude-opus-4-5, and claude-haiku-4-5 all have thinking=true hardcoded, while the Sonnet and Gemini models do not:
{
"models": {
"currentModelId": "default[]",
"availableModels": [
{"modelId": "default[]", "name": "Auto"},
{"modelId": "claude-sonnet-4-6[thinking=false,context=200k,effort=medium]", "name": "Sonnet 4.6"},
{"modelId": "claude-opus-4-6[thinking=true,context=200k,effort=high,fast=false]", "name": "Opus 4.6"},
{"modelId": "claude-opus-4-5[thinking=true]", "name": "Opus 4.5"},
{"modelId": "gemini-3.1-pro[]", "name": "Gemini 3.1 Pro"},
{"modelId": "claude-haiku-4-5[thinking=true]", "name": "Haiku 4.5"},
{"modelId": "claude-sonnet-4-5[thinking=false,context=200k]", "name": "Sonnet 4.5"},
{"modelId": "gemini-3-pro[]", "name": "Gemini 3 Pro"},
{"modelId": "gemini-3-flash[]", "name": "Gemini 3 Flash"},
{"modelId": "claude-sonnet-4[thinking=false,context=200k]", "name": "Sonnet 4"},
{"modelId": "gemini-2.5-flash[]", "name": "Gemini 2.5 Flash"}
]
}
}
Client Request:
The client then selects Opus 4.6, using the variant ID exactly as provided by the server:
{
"id": 4,
"method": "session/set_model",
"params": {
"sessionId": "fcbee826-6ffe-492f-830e-92514e9e6e62",
"modelId": "claude-opus-4-6[thinking=true,context=200k,effort=high,fast=false]"
},
"jsonrpc": "2.0"
}
The client has no option but to pass the model ID verbatim – thinking=true is baked into the only variant offered.
Error Response:
The request fails with the following error, indicating the thinking variant is blocked by admin settings:
{
"jsonrpc": "2.0",
"method": "session/update",
"params": {
"sessionId": "fcbee826-6ffe-492f-830e-92514e9e6e62",
"update": {
"sessionUpdate": "agent_message_chunk",
"content": {
"type": "text",
"text": "Error: k: Model Blocked This model has been blocked by your team admin settings."
}
}
}
}
Steps to Reproduce
- Disable “Thinking” for the model in Cursor Settings > Models (or have a plan/permissions that do not include thinking).
- Connect an ACP client (e.g., IntelliJ) to Cursor via ACP.
- The client receives the model list from the ACP server on initialization.
- Select Opus 4.6 (or any model returned with thinking=true).
- The client uses the variant ID as-is in a session/set_model call.
- The request fails because thinking is not allowed.
Expected Behavior
The model list returned by the ACP server should only include variants that the user is actually permitted to use. Specifically:
• If thinking is not enabled or not permitted, do not return thinking=true variants. Return thinking=false variants instead.
• Ideally, for models that support both modes, return separate entries for each (e.g., “Opus 4.6” with thinking=false and “Opus 4.6 Thinking” with thinking=true), so the client and user can choose. Only include the thinking=true variant if the user actually has access to it.
Operating System
MacOS
Version Information
About Cursor CLI
CLI Version 2026.03.11-6dfa30c
Model Claude 4.6 Opus
OS darwin (arm64)
Additional Information
The client is IntelliJ IDEA 2025.3.3 using the Cursor agent from the ACP Registry.
Does this stop you from using Cursor
Sometimes - I can sometimes use Cursor