Default model choice fails when org policy loads model list after copilot load
Nobody has claimed this yet.
- Dominant language
- Shell
- Stars
- 11.2k
- Forks
- 1.9k
- Avg merge
- 14h 16m
- Merged PRs (30d)
- 6
Description
Describe the bug
What's happening: ┃
┃
• Your user default is correctly saved ( ~/.copilot/settings.json → "model": "GPT-5.6 Sol" ). ┃
• At session startup, the resolver checks GPT-5.6-Sol against the model catalog it has at that instant — only ~150-400ms after auth completes — and doesn't find it ┃
available yet, so it silently falls back to claude-sonnet-5 . ┃
• This happens before any managed/org policy is even involved (the policy log lines only cover telemetry/bypass permissions, not model allowlists) — so it's not an org ┃
restriction blocking the model. ┃
• The UI briefly shows "Sol" (from your saved default) before the resolver's fallback takes effect and the display corrects to Sonnet — matching exactly what you saw. ┃
┃
This looks like a timing/race condition: the model entitlement/catalog fetch for GPT-5.6-Sol on your account hasn't completed (or propagated) by the time the session binds ┃
its model, so it can't find it in the "available" list yet.
Affected version
No response
Steps to reproduce the behavior
in org with policy-configured model list, slect a policy-avaiable model (not default available model) as default via /config or /settings, then restart copilot, it will show the new model briefly, before defautling back to a differnet model
Expected behavior
expect it to respect the configured default model.
Additional context
No response
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.
Research direction
Reproduce the issue by selecting a policy-available model through /config or /settings, then restarting Copilot in an organization with a configured model list. Trace startup model resolution against catalog loading; done means the configured default remains selected after startup instead of briefly appearing and falling back to another model.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- shell
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100