`reasoningEffort` setting is applied to the wrong custom endpoint
@justschen is already working on this.
Since Jun 10, 2026.
Assessment
This issue has not been assessed yet.
Description
Bug: reasoningEffort setting is applied to the wrong custom endpoint due to index mismatch (UI alphabetical sorting vs. array order)
Info
- Copilot Chat Extension Version: built-in
- VS Code Version: 1.124.0 (Universal)
- OS Version:
- Feature (e.g. agent/edit/ask mode): Chat UI
- Selected model (e.g. GPT 4.1, Claude 3.7 Sonnet): all
- Logs:
Description
When modifying the reasoningEffort for a custom endpoint via the Copilot Chat UI, the setting is incorrectly mapped back to the underlying configuration array using its sorted UI index, rather than its unique name or identifier.
Example: (Full example see below)
Given the following original configuration array:
[
{"name": "Copilot", ...}, // Array index 0
{"name": "B CustomEndpoint", ...}, // Array index 1
{"name": "A CustomEndpoint", ...} // Array index 2
]
Since the Chat UI sorts the endpoints alphabetically, "A CustomEndpoint" is displayed before "B CustomEndpoint".
When attempting to change the reasoningEffort for "A CustomEndpoint" in the UI, the system uses the alphabetical index (index 1) and incorrectly applies the setting to the object at index 1 of the original array (which is "B CustomEndpoint").
As a result, the following object is mistakenly injected into "B CustomEndpoint":
[
{"name": "Copilot", ...},
{
"name": "B CustomEndpoint", ...,
"settings": {
"model-b": {
"reasoningEffort": "high"
}
},
{"name": "A CustomEndpoint", ...}
Expected Behavior
The UI should map the reasoningEffort update using the endpoint's name or ID to look up the correct object in the array, rather than relying on the array index which breaks when the UI list is sorted.
Full Example
Before selecting thinking effort in UI:
[
{
"name": "B CustomEndpoint",
"vendor": "customendpoint",
"apiKey": "${input:chat.lm.secret.e079954}",
"apiType": "chat-completions",
"models": [
{
"id": "b-ai-1",
"name": "B-AI-1",
"url": "https://[redacted].com/v1/chat/completions",
"apiType": "chat-completions",
"toolCalling": true,
"vision": true,
"thinking": true,
"maxInputTokens": 400000,
"maxOutputTokens": 128000,
"supportsReasoningEffort": ["none", "low", "medium", "high", "xhigh"]
}
]
},
{
"name": "A CustomEndpoint",
"vendor": "customendpoint",
"apiKey": "${input:chat.lm.secret.e079954}",
"apiType": "chat-completions",
"models": [
{
"id": "a-ai-1",
"name": "A-AI-1",
"url": "https://[redacted].com/v1/chat/completions",
"apiType": "chat-completions",
"toolCalling": true,
"vision": true,
"thinking": true,
"maxInputTokens": 400000,
"maxOutputTokens": 128000,
"supportsReasoningEffort": ["low", "medium", "high", "max"]
}
]
}
]
After:
[
{
"name": "B CustomEndpoint",
"vendor": "customendpoint",
"apiKey": "${input:chat.lm.secret.e079954}",
"apiType": "chat-completions",
"models": [
{
"id": "b-ai-1",
"name": "B-AI-1",
"url": "https://[redacted].com/v1/chat/completions",
"apiType": "chat-completions",
"toolCalling": true,
"vision": true,
"thinking": true,
"maxInputTokens": 400000,
"maxOutputTokens": 128000,
"supportsReasoningEffort": ["none", "low", "medium", "high", "xhigh"]
}
],
"settings": {
"a-ai-1": {
"reasoningEffort": "max"
}
}
},
{
"name": "A CustomEndpoint",
"vendor": "customendpoint",
"apiKey": "${input:chat.lm.secret.e079954}",
"apiType": "chat-completions",
"models": [
{
"id": "a-ai-1",
"name": "A-AI-1",
"url": "https://[redacted].com/v1/chat/completions",
"apiType": "chat-completions",
"toolCalling": true,
"vision": true,
"thinking": true,
"maxInputTokens": 400000,
"maxOutputTokens": 128000,
"supportsReasoningEffort": ["low", "medium", "high", "max"]
}
]
}
]
- Dominant language
- TypeScript
- Stars
- 193k
- Forks
- 42.9k
- PR merge metrics
- PR metrics pending
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from microsoft/vscode
-
testplan-item
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
new release
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
testplan-item
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
testplan-item
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
All issues in microsoft/vscode
Similar issues
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P3
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 76/100
-
code-quality refactoring
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
github/gh-aw-firewall#8816 ·
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
vercel/react-tweet#225 ·