You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Bug: Shared state between google-vertex and google-vertex-anthropic providers causes auth conflict #7514
When using the same API key for both google-vertex and google-vertex-anthropic providers, only the last authenticated provider works. The other provider fails, even though both are correctly configured in auth.json.
Steps to Reproduce
Run opencode auth login and authenticate google-vertex with a Vertex AI API key
Run opencode auth login and authenticate google-vertex-anthropic with the same API key
Try to use a Gemini model via google-vertex → Fails
Claude models via google-vertex-anthropic → Works
If you reverse the order (authenticate google-vertex-anthropic first, then google-vertex):
Gemini via google-vertex → Works
Claude via google-vertex-anthropic → Fails with error like:
Publisher Model `projects/<project>/locations/global/publishers/google/models/claude-opus-4-5@20251101` not found.
Expected Behavior
Both providers should work independently. The same API key should be usable for both Gemini and Claude models on Vertex AI, as they are separate provider configurations.
Actual Behavior
Whichever provider is authenticated last wins. The other provider breaks, suggesting shared global state between the two providers.
Environment
auth.json correctly stores separate entries for each provider:
The issue appears to be that OpenCode (or the underlying @ai-sdk/google-vertex SDK) initializes a shared singleton client when an API key is provided. The last authentication overwrites this shared state, breaking the previously authenticated provider.
Each provider should have its own isolated SDK instance to prevent this conflict.
Workaround
Currently, users must either:
Only use one of the two built-in Vertex providers
Use a custom provider definition for one of them (e.g., define its-vertex-anthropic separately)
Use ADC (Application Default Credentials) instead of API keys
Additional Context
The same API key works for both Gemini and Claude when tested individually
The issue is specifically about shared runtime state, not the stored credentials
I am running into this as well which is a bummer because I can't let opencode do its thing between multiple models like opus for most then Gemini for UI etc. this impacts using Google credentials auth for me as well.
Activity
github-actions commentedon Jan 9, 2026
This issue might be a duplicate of existing issues. Please check:
Feel free to ignore if none of these address your specific case.
aKardasz commentedon Jan 12, 2026
I am running into this as well which is a bummer because I can't let opencode do its thing between multiple models like opus for most then Gemini for UI etc. this impacts using Google credentials auth for me as well.
rekram1-node commentedon Jan 12, 2026
hmm okay ill look into this