Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
I am attempting to use the gemini-3-pro-preview model appropriately in Cursor. My Google AI Studio API key is strictly scoped to the preview version of this model; it does not have access to the standard gemini-3-pro.
However, Cursor’s “Add Custom Model” logic treats these two strings as identical aliases. When I input gemini-3-pro-preview, the UI automatically converts it to gemini-3-pro (stripping the suffix) effectively preventing me from adding the preview model explicitly.
Actual Behavior:
- Cursor forces the model gemini-3-pro to be enabled.
- Cursor sends the request payload with the model ID gemini-3-pro.
- The Google API returns a 401/403 error because the personal AI Studio API key provided is only valid for the specific …-preview variant.
Expected Behavior:
Cursor should treat gemini-3-pro-preview as a distinct model ID (separate from gemini-3-pro) and send that exact string in the API request payload.
Steps to Reproduce
Steps to Reproduce:
- Navigate to Settings > Models.
- In the “Add local custom model” input, type: gemini-3-pro-preview.
- Observe that the UI immediately maps/aliases this input to the existing gemini-3-pro model toggle, rather than adding a distinct entry for the preview version.
- Attempt to generate code.
Expected Behavior
Cursor should treat gemini-3-pro-preview as a distinct model ID and send that exact string to the API provider.
Operating System
MacOS
Current Cursor Version (Menu → About Cursor → Copy)
Version: 2.0.77
VSCode Version: 1.99.3
Commit: ba90f2f88e4911312761abab9492c42442117cf0
Date: 2025-11-13T23:10:43.113Z (5 days ago)
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Darwin arm64 25.1.0
Additional Information
This API key functions correctly in other API clients (gemini-cli, curl, etc.) where I can explicitly specify the model ID as gemini-3-pro-preview. The issue is isolated to Cursor’s internal aliasing logic which assumes the preview and production models are interchangeable for all key types.
Does this stop you from using Cursor
Sometimes - I can sometimes use Cursor