Description
GitHub Copilot authentication succeeds even when the GitHub account has no Copilot subscription or assigned seat, but the provider has no usable models.
In v1, the empty model list sends the user back through the connection flow indefinitely. In v2, Integrations shows GitHub Copilot as connected, but no models are available and there is no actionable explanation that the account lacks a Copilot entitlement.
This differs from reports where paid/entitled accounts lose models because of OAuth scopes. Here the account is known not to have a Copilot subscription or seat.
Expected: after OAuth, OpenCode should detect that the account has no Copilot entitlement and show a clear message. The provider should not appear usable/connected without explaining why no models are available.
Actual: OAuth completion is treated as a successful connection. v1 loops back to connect with an empty model list; v2 shows a connected integration with no models or useful entitlement error.
Plugins
None required
OpenCode version
v1: 1.18.26; v2: v0.0.0-beta-18866
Steps to reproduce
- Use a GitHub account without a GitHub Copilot subscription or assigned organization seat.
- In OpenCode v1, choose GitHub Copilot in
/connect and complete the GitHub device authorization.
- Open the model picker. No Copilot models are shown, and attempting to connect again repeats the same flow.
- Repeat in OpenCode v2.
- Open Integrations. GitHub Copilot appears connected, but the model list is empty and no message explains the missing entitlement.
Screenshot and/or share link
Not available; this occurs before a usable model can be selected.
Operating System
macOS 26.6.2 (arm64)
Terminal
Ghostty
Description
GitHub Copilot authentication succeeds even when the GitHub account has no Copilot subscription or assigned seat, but the provider has no usable models.
In v1, the empty model list sends the user back through the connection flow indefinitely. In v2, Integrations shows GitHub Copilot as connected, but no models are available and there is no actionable explanation that the account lacks a Copilot entitlement.
This differs from reports where paid/entitled accounts lose models because of OAuth scopes. Here the account is known not to have a Copilot subscription or seat.
Expected: after OAuth, OpenCode should detect that the account has no Copilot entitlement and show a clear message. The provider should not appear usable/connected without explaining why no models are available.
Actual: OAuth completion is treated as a successful connection. v1 loops back to connect with an empty model list; v2 shows a connected integration with no models or useful entitlement error.
Plugins
None required
OpenCode version
v1: 1.18.26; v2: v0.0.0-beta-18866
Steps to reproduce
/connectand complete the GitHub device authorization.Screenshot and/or share link
Not available; this occurs before a usable model can be selected.
Operating System
macOS 26.6.2 (arm64)
Terminal
Ghostty