I’m hitting the exact same issue with Composer 2.5 when using Override OpenAI Base URL pointed at a custom OpenAI-compatible proxy. GPT-5.5 BYOK not working - #37 by deanrie
Steps to Reproduce
Enable Override OpenAI Base URL and point it at a custom OpenAI-compatible proxy.
Also set an OpenAI API Key.
Explicitly select Composer 2.5 (not Auto).
Try to use Composer → error appears.
Expected Behavior
Composer 2.5 (Cursor proprietary model) should automatically bypass any active BYOK/OpenAI Base URL override and always use Cursor’s official endpoints, exactly like it does in Auto mode.
Hey, this isn’t a bug, it’s expected behavior. Composer models 1 / 1.5 / 2 / 2.5 are Cursor proprietary models and they always run on Cursor infrastructure, so you can’t use a custom key or proxy with them.
When Override OpenAI Base URL or an OpenAI API key is enabled, that endpoint is used for every request. Because of that, an explicitly selected Composer model gets rejected with “This model does not support custom API keys”. Auto works because routing happens without BYOK creds there.
Two options:
Use Auto. It routes automatically and works fine with keys enabled.
If you explicitly pick Composer, turn off the OpenAI key with Cmd+Shift+0 or disable Override Base URL. Your key will still be used for vendor models like GPT, Claude, and Gemini.
This is a known QoL issue. Better per-model routing so Composer and BYOK can work together is on our radar, but there’s no ETA yet.
Also, your current account is on the Free plan, and BYOK for Agent/Edit requires a paid subscription, so keep that in mind too.
The account I posted from is not my business account. After the previous BYOK issue was fixed, I purchased the Ultra subscription again.
I also do not agree with the statement that “this isn’t a bug, it’s expected behavior.” From a user perspective, this is a bug.
I am paying $200/month to use Cursor and it is my right to use Composer 2.5. If I want to use custom models through BYOK alongside Cursor’s own Composer models, I should be able to do that without constantly disabling keys, changing base URLs, or using manual workarounds. Explicitly selecting Composer while BYOK is enabled should route Composer through Cursor’s official infrastructure, not fail because a custom OpenAI-compatible endpoint is configured.
The suggested workaround:
“If you explicitly pick Composer, turn off the OpenAI key with Cmd+Shift+0 or disable Override Base URL.”
does not really solve the issue. It just forces users to constantly switch settings depending on the model they want to use. That is not a good experience for a paid Ultra user.
I already stopped using Cursor and cancelled Ultra for around two months because of the previous BYOK vision attachment issue. I do not want to go through that again. These kinds of routing issues feel small and fixable, but when they take months to resolve, they make Cursor much harder to rely on for daily work.
Please reconsider treating this as expected behavior. The expected behavior should be per-model routing: Composer should always use Cursor’s infrastructure, while BYOK/custom base URLs should apply only to compatible external vendor models.
I would appreciate it if this could be escalated and prioritized.
On your point, you’re right. The behavior you’re describing, where Composer always goes through Cursor’s infrastructure and BYOK/custom base URL only applies to compatible external models, is exactly the per-model routing improvement we have logged as a known issue. So we agree on the direction here, and I’m not trying to argue that the current experience is convenient.
An honest status update: we’re tracking this with high internal priority, but I can’t share an exact ETA, and I won’t promise specific fix timelines because that wouldn’t be fair. I’ll attach your feedback from this thread to the existing tracking item so it’s considered in prioritization, especially as a signal from an Ultra user.
The workaround using Cmd+Shift+0 or turning off Override Base URL is a temporary measure, not a real solution, and I fully agree with you there. While routing isn’t split yet, if you’re explicitly using Composer you can keep the key turned off. For GPT, Claude, and Gemini it will keep working.
After the release of Grok 4.5, this has become a bigger issue. The problem is clear, “a user who uses BYOK cannot use either Composer 2.5 or Grok 4.5” and the solution seems straightforward “just dont use the BYOK endpoint url for these Cursor models”.
Use the “old” Editor View, you can toggle the BYOK OpenAI key field using the command/hotkey for “Toggle OpenAI key” ( Cmd+Shift+0 on macOS). The command is no longer available in the new Agent Window. Not perfect, but you can switch fast, send a request using Composer 2.5, let the agent start working, and then immediately switch back to your BYOK.
Auto works for me as well, even if you use BYOK. But only god and the cursor staff know to what model that traffic is getting routed.
I tend to forget this too, but BYOK is a service by Cursor which, very likely, requires a lot of work to maintain and fix. It is extremely annoying, but, after all, a great feature.
If I can think of a better solution, I will let you know.
Hey, thanks for coming back with details on Grok 4.5.
You’re right, it’s the same root cause, not a separate issue. When Override OpenAI Base URL or an OpenAI key is enabled, those creds get attached to every request. So any model that’s routed through Cursor infrastructure like Composer 2.5 and now Grok 4.5 fails with This model does not support custom API keys. Auto works because on that path the BYOK creds aren’t attached.
The fact that after the Grok 4.5 release this is more noticeable and hits more models is a valid signal. I’ll add it to our internal tracking item, including that you’re on Ultra and this is blocking your work.
Honest status: we’re tracking this with high internal priority, but I don’t have a clear ETA, and I won’t promise a specific fix timeline since that wouldn’t be fair to you. The direction you described per-model routing where Composer and Grok always go through Cursor infra, and BYOK only applies to compatible external models is exactly what we consider the correct behavior.
Until routing is split, the options are the same:
Use Auto, it works with BYOK enabled.
If you explicitly pick Composer or Grok, temporarily disable the OpenAI key via Cmd+Shift+0 or disable Override Base URL. For GPT, Claude, and Gemini, your key will keep working.
@user691 above shared a working trick to quickly switch via the old Editor View, that can also help as a temporary workaround.
Once there’s an update on the fix, I’ll reply in the thread.