Built-in Kimi K3 + Moonshot BYOK fails with resource-not-found; cannot add custom model kimi-k3 because name is reserved

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

When using Bring Your Own Key (BYOK) with Moonshot/Kimi (https://api.moonshot.cn/v1), selecting the built-in catalog model Kimi K3 (kimi-k3) fails with:

Provider Error: We’re having trouble finding the resource you requested.

The same API key, base URL, and model ID work when calling Moonshot directly via the OpenAI Python SDK (chat.completions.create(model=“kimi-k3”)).

I cannot add a custom model named kimi-k3 to force BYOK routing, because Cursor blocks it with:

The model “kimi-k3” is already available as “Kimi K3”.

This creates a deadlock: the built-in kimi-k3 does not correctly use my Moonshot endpoint, and I am not allowed to register a custom model with the same ID that Moonshot actually requires.

Steps to Reproduce

  1. Open Cursor Settings → Models.
  2. Save a valid Moonshot OpenAI-compatible API key and turn the OpenAI API Key toggle ON.
  3. Enable Override OpenAI Base URL and set it to https://api.moonshot.cn/v1.
  4. In the chat/agent model picker, select the built-in Kimi K3.
  5. Send a simple message such as hi.
  6. Observe the Provider Error / resource-not-found failure.
  7. Try Add Custom Model with name kimi-k3. Cursor rejects it because the name is already reserved for the built-in model.
  8. Separately, run the same key/base URL/model via a local Python OpenAI client to Moonshot. The request succeeds.

Expected Behavior

Built-in Kimi K3 should either:
correctly route through my Override OpenAI Base URL + API key to Moonshot kimi-k3, or
allow adding a custom model with the same provider model ID (kimi-k3) so BYOK can work.
A model ID that works with a direct OpenAI-compatible call should also work from Cursor Agent/Chat when BYOK is enabled.
Cursor should not reserve the exact provider model name in a way that blocks BYOK.

Screenshots / Screen Recordings

Operating System

Windows 10/11

Version Information

Version: 3.15.19 (user setup)

For AI issues: add Request ID with privacy disabled

Request ID: 48f39684-6615-4e1a-a2d7-d00bf1b22d56
{“error”:“ERROR_PROVIDER_ERROR”,“details”:{“title”:“Provider Error”,“detail”:“We’re having trouble finding the resource you requested. If the problem persists, please contact support.”,“isRetryable”:false,“additionalInfo”:{“providerStatusCode”:“404”},“buttons”:,“planChoices”:},“isExpected”:true}
We’re having trouble finding the resource you requested. If the problem persists, please contact support.
Provider Error We’re having trouble finding the resource you requested. If the problem persists, please contact support.
NonRetriableError: Provider Error We’re having trouble finding the resource you requested. If the problem persists, please contact support.
at b9_ (vscode-file://vscode-app/d:/devtools/cursor/resources/app/out/vs/workbench/workbench.glass.main.js:7779:118432)
at dla (vscode-file://vscode-app/d:/devtools/cursor/resources/app/out/vs/workbench/workbench.glass.main.js:7779:117015)
at O9_ (vscode-file://vscode-app/d:/devtools/cursor/resources/app/out/vs/workbench/workbench.glass.main.js:7780:12878)
at Object.classify (vscode-file://vscode-app/d:/devtools/cursor/resources/app/out/vs/workbench/workbench.glass.main.js:7780:17452)
at P9_ (vscode-file://vscode-app/d:/devtools/cursor/resources/app/out/vs/workbench/workbench.glass.main.js:7780:5856)
at async xla.run (vscode-file://vscode-app/d:/devtools/cursor/resources/app/out/vs/workbench/workbench.glass.main.js:7780:16804)
at async Gme.runAgentLoop (vscode-file://vscode-app/d:/devtools/cursor/resources/app/out/vs/workbench/workbench.glass.main.js:7921:34550)
at async jwl.streamFromAgentBackend (vscode-file://vscode-app/d:/devtools/cursor/resources/app/out/vs/workbench/workbench.glass.main.js:18819:14755)
at async jwl.getAgentStreamResponse (vscode-file://vscode-app/d:/devtools/cursor/resources/app/out/vs/workbench/workbench.glass.main.js:18819:32098)
at async UUe._submitChatMaybeAbortCurrent (vscode-file://vscode-app/d:/devtools/cursor/resources/app/out/vs/workbench/workbench.glass.main.js:7888:2569)

Does this stop you from using Cursor

Yes - Cursor is unusable

Hey, thanks for the detailed report and the Request ID. That really helps.

You diagnosed it correctly. The built-in Kimi K3 from the catalog is a Cursor-managed model, and Override OpenAI Base URL doesn’t apply to those models. So when the OpenAI API key toggle is on, the request doesn’t go to your Moonshot endpoint, which is why you get a 404 / resource-not-found. This is a known issue and we’re tracking it. Separately, the second part that you can’t register a custom model named kimi-k3 because that slot is reserved for the built-in model is also on our radar.

For now, there are two workarounds:

  1. If you want the built-in Kimi K3, turn off the OpenAI API key toggle and use the Cursor-managed version of the model without BYOK.
  2. If you need your Moonshot endpoint via BYOK, add a custom model with a different model id that Moonshot also returns, like a versioned or preview id instead of plain kimi-k3, so it doesn’t collide with the reserved name. Then Override Base URL and your key should apply correctly.

I can’t share an ETA yet, but I’ll reply in the thread once there’s an update. Let me know if either workaround works for you.