Skip to content

Custom endpoint language models display id instead of name in model picker #318748

Description

Does this issue occur when all extensions are disabled?: Yes

customendpoint language models display id instead of name, causing duplicate-looking models in picker and Manage Language Models

I tested the BYOK language model changes introduced in VS Code v1.122, especially around local/custom models.

I configured my chatLanguageModels.json according to the documentation here:

https://code.visualstudio.com/docs/copilot/customization/language-models#_add-a-custom-endpoint-model

For models configured with:

"vendor": "customendpoint"

the displayed model name appears to be taken from the model id instead of the name field.

This also occurs other vendors.

As a result, I cannot add the same underlying model twice with the same id but different name values and different configuration parameters, because both entries are shown with the same visible name. This causes the models to look duplicated/colliding in both the model picker and the Chat: Manage Language Models UI.

Repro Steps

  1. Open VS Code v1.122.0.
  2. Configure chatLanguageModels.json with a customendpoint vendor.
  3. Add two models with the same id but different name values.
  4. Open the model picker or run Chat: Manage Language Models.
  5. Observe the displayed model names.

Example configuration:

[
  {
    "name": "example",
    "vendor": "customendpoint",
    "apiKey": "${input:chat.lm.secret.example}",
    "apiType": "chat-completions",
    "models": [
      {
        "id": "Qwen3.6-27B",
        "name": "Qwen3.6-27B",
        "url": "https://example.com/v1",
        "toolCalling": true,
        "vision": true,
        "maxInputTokens": 229376,
        "maxOutputTokens": 32768,
        "thinking": false,
        "streaming": true,
        "zeroDataRetentionEnabled": false,
        "reasoningEffortFormat": "chat-completions"
      },
      {
        "id": "Qwen3.6-27B",
        "name": "Qwen3.6-27B-thinking",
        "url": "https://example.com/v1",
        "toolCalling": true,
        "vision": true,
        "maxInputTokens": 180224,
        "maxOutputTokens": 81920,
        "thinking": true,
        "streaming": true,
        "zeroDataRetentionEnabled": false,
        "reasoningEffortFormat": "chat-completions"
      }
    ]
  }
]

Actual Behavior

Both customendpoint models are displayed using the id value:

Qwen3.6-27B
Qwen3.6-27B

This happens in:

  • Model picker
  • Chat: Manage Language Models

Because of this, two entries with the same id and different name values are indistinguishable in the UI.

Expected Behavior

The visible model name should use the name field, as it does for other vendors.

For the example above, the UI should show:

Qwen3.6-27B
Qwen3.6-27B-thinking

This would allow users to register the same underlying model more than once with different parameters, such as different context size, output token limits, thinking mode, or other endpoint-specific options.

Additional Notes

This seems all vendor behave same like vendor: "customendpoint". Other vendor configurations don't appear to respect the name field for the visible model name.

VS Code Version

Version: 1.122.0 (system setup)
Commit: 6a49527b96e326fe62fbdb56f60e16877c9aa724
Date: 2026-05-27T14:03:01-07:00
Electron: 39.8.8
ElectronBuildId: 13870025
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
OS: Windows_NT x64 10.0.22631
Image

Metadata

Metadata

Labels

bugIssue identified by VS Code Team member as probable bugmodel-byok

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions