Skip to content

Startup error "Failed to read model provider attribution: Error: Not authenticated" in 1.0.89 #5008

Description

@versegeek

Describe the bug

Since 1.0.89, every new interactive session shows this error twice right after startup:

Failed to read model provider attribution: Error: Not authenticated

Sign-in completes about 3 seconds later and chat/model requests work normally. It looks like a startup race: the new provider-attribution code (model-picker and model-provider-labels) calls model.list() before authentication has finished and reports the failure as a session error.

Affected version

GitHub Copilot CLI 1.0.89

Steps to reproduce the behavior

  1. Authenticate via the COPILOT_GITHUB_TOKEN environment variable (OAuth token; no accounts stored via /login).
  2. Start copilot in a trusted directory.
  3. The error appears twice in the timeline immediately after startup.

Timing from session events and the process log (relative to session.start):

+0.00s  session.start
+0.29s  session.error  Failed to read model provider attribution: Error: Not authenticated
+0.31s  session.error  Failed to read model provider attribution: Error: Not authenticated
+3.04s  [INFO] Signed in to https://github.com as <user>.

Expected behavior

No error at startup. Provider attribution should be loaded after authentication completes (or retried once signed in) instead of surfacing "Not authenticated".

Additional context

  • OS / arch: macOS, x86_64 (darwin-x64 package)
  • Shell: zsh
  • Auth: COPILOT_GITHUB_TOKEN environment variable
  • The code path that emits this message is not present in 1.0.85-1.0.88; the error started after updating to 1.0.89.
  • Impact appears cosmetic: the error shows on every new session, but chat and model calls work.

Activity

  1. added theissue type on Sep 30, 2026
  2. added
    area:authenticationLogin, OAuth, device auth, token management, and keychain integration
    area:modelsModel selection, availability, switching, rate limits, and model-specific behavior
    and removed on Sep 30, 2026
  3. Tak2121 commented on Sep 30, 2026

    @Tak2121
  4. npechett-wtg commented on Sep 30, 2026

    @npechett-wtg

    yup need fix

  5. norc-peterbrymer commented on Sep 30, 2026

    @norc-peterbrymer

    Having the same issue but with windows os

  6. kenneth-burgener-sndk commented on Sep 30, 2026

    @kenneth-burgener-sndk

    Additional data point: on Linux x64 (1.0.89) with stored credentials (not COPILOT_GITHUB_TOKEN), this is intermittent rather than every session, and it tracks whether startup auth is warm or cold.

    Across 11 interactive launches on 1.0.89, the time from Starting Copilot CLI to the first authenticated-account log line ([managedSettings] self-fetch starting for account https://github.com/...) was bimodal:

    Startup Auth ready after Launches model-provider-labels error
    Warm ~1-2 ms 8 0 of 8
    Cold ~530-615 ms 3 2 of 2 with a surviving session log (each logged twice, ~170-195 ms after session.start)

    Cold launches:

    • were the first launch after a long idle period (12 h+ here); launches within minutes of a previous one were warm
    • log Memory is not enabled: Copilot token is required. shortly after startup
    • write a new entry to ~/.cache/copilot/copilot-user-cache.json whose retrievedAt matches the moment auth resolves; warm launches reuse the cached entry

    So the provider-attribution model.list() call only loses the race when the Copilot user info has to be fetched over the network. The model-provider-labels effect re-runs when the model catalog loads, so the labels do populate afterwards and the error is cosmetic. Gating the first call on auth readiness, or not surfacing a pre-auth failure as a session.error (as with #3596), would avoid it.

  7. versegeek commented on Oct 1, 2026

    @versegeek
    Author

    Additional data point: on Linux x64 (1.0.89) with stored credentials (not COPILOT_GITHUB_TOKEN), this is intermittent rather than every session, and it tracks whether startup auth is warm or cold.

    Across 11 interactive launches on 1.0.89, the time from Starting Copilot CLI to the first authenticated-account log line ([managedSettings] self-fetch starting for account https://github.com/...) was bimodal:

    Startup Auth ready after Launches model-provider-labels error
    Warm ~1-2 ms 8 0 of 8
    Cold ~530-615 ms 3 2 of 2 with a surviving session log (each logged twice, ~170-195 ms after session.start)
    Cold launches:

    • were the first launch after a long idle period (12 h+ here); launches within minutes of a previous one were warm
    • log Memory is not enabled: Copilot token is required. shortly after startup
    • write a new entry to ~/.cache/copilot/copilot-user-cache.json whose retrievedAt matches the moment auth resolves; warm launches reuse the cached entry

    So the provider-attribution model.list() call only loses the race when the Copilot user info has to be fetched over the network. The model-provider-labels effect re-runs when the model catalog loads, so the labels do populate afterwards and the error is cosmetic. Gating the first call on auth readiness, or not surfacing a pre-auth failure as a session.error (as with #3596), would avoid it.

    @kenneth-burgener-sndk Thanks for the detailed investigation and the warm/cold startup comparison!

    Your findings support the startup authentication race I suspected. It's helpful to know this also occurs on Linux with stored credentials, not just on macOS with COPILOT_GITHUB_TOKEN, so the issue doesn't appear to be specific to environment-variable authentication.

    Waiting for authentication to be ready before the initial model.list() call sounds like a reasonable fix. Thanks again for adding these data points!

  8. Tak2121 commented on Oct 1, 2026

    @Tak2121
  9. copilot-cli-bot commented on Oct 4, 2026

    @copilot-cli-bot

    This appears to be resolved as of GitHub Copilot CLI v1.0.91. Please update to that release or a newer stable version. We're closing this as completed. If it still happens, please comment with your version and reproduction steps.

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

    area:authenticationLogin, OAuth, device auth, token management, and keychain integrationarea:modelsModel selection, availability, switching, rate limits, and model-specific behavior

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions