GitHub-managed custom model with Vision enabled is exposed as Tools-only and rejects image attachments

Open
#323,699 1 comment 7 reactions 1 assignee View on GitHub

@vritant24 is already working on this.

Since Jun 30, 2026.

Assessment

This issue has not been assessed yet.

Description

Related issue

Related to #316581, but this report is specifically about Vision capability being lost/ignored for GitHub-managed custom models.

What happened?

I have three different setups for effectively the same Qwen 3.7 Plus vision-capable model family:

  1. GitHub-managed custom model -> LiteLLM proxy
  2. GitHub-managed custom model -> Alibaba Cloud directly
  3. Direct custom endpoint in VS Code

The issue reproduces with the first two setups, and the third setup works.

In practice:

  • the GitHub-managed LiteLLM-backed model is exposed as Tools only
  • the GitHub-managed Alibaba-direct model is also exposed as Tools only
  • but the same model configured directly as a custom endpoint in VS Code shows Tools + Vision and works with image input inside of vscode

So this does not appear to be specific to LiteLLM.

Repro steps
  1. Register a custom model in GitHub custom models preview against either:
    • an OpenAI-compatible LiteLLM endpoint, or
    • Alibaba Cloud directly.
  2. Enable Vision in the model configuration.
  3. Use the model from a GitHub-managed Copilot surface with an image attachment.
  4. Observe that the image is rejected with messages like:
    • The current model couldn't process this image's format.
    • Removed image attachment(s) from conversation history because the model rejected them (vision unavailable for this model or organization).
Expected behavior

If the model is configured with Vision and the backing endpoint supports image input, Copilot clients should expose and honor the Vision capability consistently.

Actual behavior

The GitHub-managed model path appears to drop or ignore the Vision capability:

  • GitHub custom model configuration shows Vision enabled
  • VS Code model catalog shows the GitHub-managed models as Tools only
  • the same model added directly in VS Code as a custom endpoint shows Tools + Vision
  • image requests fail before they appear to reach the provider/backend
Why this seems like a GitHub/Copilot integration issue

This does not look like a backend/provider issue:

  • direct requests to the LiteLLM endpoint succeed with image input
  • the same model configured directly in VS Code as a custom endpoint also succeeds with image input
  • the issue reproduces for both:
    • GitHub-managed model backed by LiteLLM
    • GitHub-managed model backed directly by Alibaba Cloud

So this looks like a capability propagation/runtime bug in the GitHub custom model integration rather than a LiteLLM-specific or provider-specific issue.

Screenshots
1. GitHub custom model configuration shows Vision enabled
GitHub custom model configuration with Vision enabled

Description:

  • Model examples include:
    • qwen3.7-plus (alibaba_cloud)
    • qwen-3.7-plus (litellm)
  • Endpoint type: Chat completions API
  • Capabilities enabled in the GitHub UI:
    • Tool calling
    • Streaming
    • Vision
    • Thinking
2. Copilot CLI / chat rejection after image attachment
Copilot CLI rejecting image attachment for the model

Description:

  • After attaching an image, Copilot reports:
    • The current model couldn't process this image's format.
    • Removed image attachment(s) from conversation history because the model rejected them (vision unavailable for this model or organization).
3. VS Code capability mismatch between GitHub-managed models and direct endpoint
VS Code model catalog showing GitHub-managed models as Tools only while the direct endpoint shows Tools and Vision

Description:

  • The GitHub-managed custom model entries appear as:
    • qwen-3.7-plus-litellm -> Tools only
    • qwen3.7-plus -> Tools only
  • A direct custom endpoint entry for the same backing model appears with Tools + Vision.
  • Same model family and capability, but different Copilot capability exposure depending on whether the model is routed through the GitHub-managed custom model path or added directly as a custom endpoint.
Dominant language
TypeScript
Stars
193k
Forks
42.9k
PR merge metrics
PR metrics pending

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from microsoft/vscode

All issues in microsoft/vscode

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.