After upgrading to cursor 3.9.16, when entering the BaseURL and API KEY on the Models page and refreshing, models cannot be retrieved. However, the GET request to https://BaseUrl/v1/models does return model data, and the response message complies with OpenAI specifications.
Steps to Reproduce
Enter the Base URL and API KEY, then click On to enable
Click Refresh Model List
No errors, no results
Expected Behavior
The models were supposed to refresh the available models and use the Agent to select the models supported by the third-party transfer stations. However, nothing happened in reality.
If the problem is solved, please contact me.
Hey, thanks for the report. This isn’t a bug, it’s expected behavior. The Refresh Model List button only refreshes Cursor’s built-in model catalog, not your custom Base URL. Cursor doesn’t auto-discover models from a third-party relay via /v1/models, so even if that endpoint returns valid data, this button won’t use it. Models from a relay need to be added manually.
How to set it up:
In Models settings, set Override OpenAI Base URL to your relay URL, with /v1.
Keep OpenAI API Key enabled, using your relay key.
For each model, type the exact model id returned by the relay into the search field, then click Add Custom Model.
Select the added model and use it. You don’t need to refresh.
If chat or agent requests start failing with read ECONNRESET after adding a model, this can happen on 3.9.16 behind a proxy. Switch Settings → Network → HTTP compatibility mode → HTTP/1.1 and fully restart Cursor. That’s a separate known issue.
Thank you for your reply. In fact, the first and second steps were not problematic. However, when I clicked to add a custom model in the third step, nothing happened and no error message appeared. Moreover, the model I just added was not listed (I have already switched the network to HTTP/1.1)
Thank you for your reply. In fact, the first and second steps were not problematic. However, when I clicked to add a custom model in the third step, nothing happened and no error message appeared. Moreover, the model I just added was not listed (I have already switched the network to HTTP/1.1)
Thanks for the screenshots. They show what’s going on. You’re trying to add a custom model named gpt-5.5, but that name is already taken by a built-in Cursor model GPT-5.5. Because of the name conflict, the Add Custom Model button doesn’t create anything, and requests still go through Cursor’s native routing instead of BYOK.
Fix: give your model a unique name that’s different from the built-in ones. For example, use gpt-5.5-relay (or any name that isn’t in Cursor’s list) and click Add Custom Model. It should then appear in the list and route through your Base URL and key.
Your Base URL and API Key are set up correctly, so you don’t need to change anything there.