Skip to content

GPT-6 Astra: long_context tier reports 872k prompt tokens while model capabilities report 1,050k #4927

Description

@RustyHenok

Describe the bug

The model catalog returned by the Copilot runtime for gpt-6-astra is internally inconsistent. The model's capabilities.limits advertise a 1,050,000-token prompt limit (1,178,000 context window), but the billing.tokenPrices.longContext tier — which VS Code's context-window picker uses to build its choices — caps out at 872,000.

As a result, VS Code offers Astra as 272K / 872K while every other 1M-class model (e.g. Claude Fable 5.1) is offered at its full advertised prompt limit. Selecting the long_context tier does not change this; the session is already on long_context and still shows 872k.

For comparison, claude-fable-5.1 is self-consistent: max_prompt_tokens = 936,000 and longContext.maxPromptTokens = 936,000.

Affected version

Copilot runtime @github/copilot-linux-x64 1.0.84-4 (bundled with VS Code on Linux x64), queried via the bundled Copilot SDK.

Steps to reproduce the behavior

  1. Using the bundled SDK, start the runtime over stdio and call client.listModels().
  2. Inspect the gpt-6-astra entry.
  3. Compare capabilities.limits.max_prompt_tokens with billing.tokenPrices.longContext.maxPromptTokens.

Observed (verbatim, trimmed):

{
  "id": "gpt-6-astra",
  "limits": {
    "max_context_window_tokens": 1178000,
    "max_output_tokens": 128000,
    "max_prompt_tokens": 1050000
  },
  "billing": {
    "tokenPrices": {
      "contextMax": 272000,
      "maxPromptTokens": 272000,
      "longContext": {
        "contextMax": 872000,
        "maxPromptTokens": 872000
      }
    }
  }
}

Reference model for comparison (consistent):

{
  "id": "claude-fable-5.1",
  "limits": {
    "max_context_window_tokens": 1000000,
    "max_output_tokens": 64000,
    "max_prompt_tokens": 936000
  },
  "billing": {
    "tokenPrices": {
      "longContext": { "contextMax": 936000, "maxPromptTokens": 936000 }
    }
  }
}
  1. In VS Code, open the context-window picker for GPT-6 Astra: choices are 272K and 872K. The picker enum is built from tokenPrices.contextMax / tokenPrices.longContext.contextMax (agent host _createModelConfigSchemanb()_P()), so the 1,050k capability value is never surfaced.

Expected behavior

Either:

  • billing.tokenPrices.longContext.maxPromptTokens for gpt-6-astra should match capabilities.limits.max_prompt_tokens (1,050,000), so the UI offers the full advertised context; or
  • if 872,000 is the actually enforced prompt limit on the long-context tier, capabilities.limits.max_prompt_tokens / max_context_window_tokens should be lowered to match, and the documented "1M context" for Astra should be qualified.

Clarification of which value the service actually enforces would be appreciated, since the two figures imply a ~178k-token difference in usable prompt budget.

Additional context

  • Observation: 872,000 = 1,000,000 − 128,000 and 1,050,000 = 1,178,000 − 128,000. The two values look like they were derived from different total-window figures (1M vs 1.178M) minus the same 128k output reservation, which suggests one side of the catalog was not updated.
  • Not client-configuration related: contextTier is already long_context in the session log, and the provider_models table in the local runtime DB is empty (metadata is fetched live), so there is no local override in play.
  • Related but distinct: Do not derive model context from prompt and output token limits #4638 concerns how the CLI derives a total from prompt+output; this report concerns the server-supplied tier metadata disagreeing with the server-supplied capability metadata.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions