Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
I have an active Pro subscription, but Settings → Models only shows about 7 models (e.g. default, composer-2.5, grok-*, kimi-*, glm-*) instead of the full catalog (Claude, GPT, Gemini, etc.).
The same account and access token return 153 models when calling AvailableModels via JSON API with Authorization header. Cursor 3.9’s in-app refreshDefaultModels() (gRPC-web via aiClient) appears to overwrite the local cache with this reduced list after login / Reload Window / periodic refresh.
Likely root cause: a startup race where refreshDefaultModels() runs before AlwaysLocalSingleton auth is ready, so the gRPC request goes out without Bearer token. The server returns HTTP 200 with an anonymous ~7-model list instead of 401, and Cursor persists it to state.vscdb (availableDefaultModels2).
Steps to Reproduce
- Log in with Pro account on Windows with HTTP proxy enabled (127.0.0.1:7890)
- Open Settings → Models
- Observe only ~7 models listed (no Claude/GPT/Gemini)
- Developer: Reload Window → still ~7 models
- Call AvailableModels API (application/json + Authorization: Bearer from state.vscdb) → returns 153 models
Expected Behavior
Settings → Models should list all models available to my Pro account. refreshDefaultModels() should wait for authenticated transport or refuse to overwrite cache with a drastically smaller list.
Operating System
Windows 10/11
Version Information
Cursor Version: 3.9.16
VS Code Version: 1.105.1
Commit: 042b3c1a4c53f2c3808067f519fbfc67b72cad80
OS: Windows 10 (build 19045)
Proxy: 127.0.0.1:7890 (Clash Verge), http.proxySupport: override
cursor.general.disableHttp2: true (also tried false — same issue)
Additional Information
Account: Pro/active. API with auth returns 153 models including Claude/GPT/Gemini. Without auth, JSON API returns 401; gRPC-web may return 200 + anonymous list.
Reduced list example: default, composer-2.5, grok-build-0.1, grok-4.3, kimi-k2.7-code, kimi-k2.5, glm-5.2
Related forum topic (same day): always-local-singleton ignores http.proxy and server overrides cursor.general.disableHttp2
Manual DB repair into availableDefaultModels2 works briefly but Cursor overwrites on reload/login.
Does this stop you from using Cursor
No - Cursor works, but with this issue