Cursor is practically unusable with any new model through OpenRouter

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

I use OpenRouter to access models. But when I try, I get errors like these:

GPT5.1:

Request failed with status code 400: {"error":{"message":"Input required: specify \"prompt\" or \"messages\"","code":400},"user_id":"user_2smDyoir6cVtTliFhxZDiolmcWC"}

Gemini 3:
Will list the current directory or do some other tool call, then get this error:

Request failed with status code 400: {"error":{"message":"Provider returned error","code":400,"metadata":{"raw":"Gemini models require OpenRouter reasoning details to be preserved in each request. Please refer to our docs: https://openrouter.ai/docs/use-cases/reasoning-tokens#preserving-reasoning-blocks. Upstream error: {\n  \"error\": {\n    \"code\": 400,\n    \"message\": \"Unable to submit request because function call `default_api:list_dir` in the 2. content block is missing a `thought_signature`. Learn more: https://docs.cloud.google.com/vertex-ai/generative-ai/docs/thought-signatures\",\n    \"status\": \"INVALID_ARGUMENT\"\n  }\n}\n","provider_name":"Google"}},"user_id":"user_2smDyoir6cVtTliFhxZDiolmcWC"}

Claude sonnet 4.5:

Request failed with status code 500: {"error":{"message":"Internal Server Error","code":500}}

Claude sonnet 4:

Request failed with status code 500: {"error":{"message":"Internal Server Error","code":500}}

Only last gen models work at all.

Steps to Reproduce

Use any modern model through OpenRouter

Operating System

Linux

Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.1.26
VSCode Version: 1.105.1
Commit: f628a4761be40b8869ca61a6189cafd14756dff0
Date: 2025-11-24T05:39:06.655Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Linux x64 6.17.0-6-generic

For AI issues: which model did you use?

Claude sonnet 4, Claude saonet 4.5, Gemini 3, GPT 5.1

For AI issues: add Request ID with privacy disabled

Request ID: def4ae9a-9a68-430c-8a8d-667afe8bd7ef
{“error”:“ERROR_OPENAI”,“details”:{“title”:“Unable to reach the model provider”,“detail”:“We encountered an issue when using your API key: Provider was unable to process your request\n\nAPI Error:\n\n\nRequest failed with status code 500: {\"error\":{\"message\":\"Internal Server Error\",\"code\":500}}\n”,“additionalInfo”:{},“buttons”:,“planChoices”:},“isExpected”:true}
ConnectError: [invalid_argument] Error
at kZc.$endAiConnectTransportReportError (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:6330:408452)
at HPo._doInvokeHandler (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7180:11314)
at HPo._invokeHandler (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7180:11056)
at HPo._receiveRequest (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7180:9818)
at HPo._receiveOneMessage (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7180:8635)
at yPt.value (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7180:6727)
at _e._deliver (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:49:2962)
at _e.fire (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:49:3283)
at Xmt.fire (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:6315:12156)
at MessagePort. (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:8972:18439)

Request ID: 82341f68-8e8d-4df5-b3f4-5fd7419ef5ce
{“error”:“ERROR_OPENAI”,“details”:{“title”:“Unable to reach the model provider”,“detail”:“We encountered an issue when using your API key: Provider was unable to process your request\n\nAPI Error:\n\n\nRequest failed with status code 500: {\"error\":{\"message\":\"Internal Server Error\",\"code\":500}}\n”,“additionalInfo”:{},“buttons”:,“planChoices”:},“isExpected”:true}
ConnectError: [invalid_argument] Error
at kZc.$endAiConnectTransportReportError (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:6330:408452)
at HPo._doInvokeHandler (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7180:11314)
at HPo._invokeHandler (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7180:11056)
at HPo._receiveRequest (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7180:9818)
at HPo._receiveOneMessage (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7180:8635)
at yPt.value (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7180:6727)
at _e._deliver (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:49:2962)
at _e.fire (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:49:3283)
at Xmt.fire (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:6315:12156)
at MessagePort. (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:8972:18439)

Request ID: 4471af94-d400-4ffe-b5d9-fb7a6e2e1256
{“error”:“ERROR_OPENAI”,“details”:{“title”:“Unable to reach the model provider”,“detail”:“We encountered an issue when using your API key: Provider was unable to process your request\n\nAPI Error:\n\n\nRequest failed with status code 400: {\"error\":{\"message\":\"Input required: specify \\\"prompt\\\" or \\\"messages\\\"\",\"code\":400},\"user_id\":\"user_2smDyoir6cVtTliFhxZDiolmcWC\"}\n”,“additionalInfo”:{},“buttons”:,“planChoices”:},“isExpected”:true}
ConnectError: [invalid_argument] Error
at kZc.$endAiConnectTransportReportError (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:6330:408452)
at HPo._doInvokeHandler (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7180:11314)
at HPo._invokeHandler (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7180:11056)
at HPo._receiveRequest (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7180:9818)
at HPo._receiveOneMessage (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7180:8635)
at yPt.value (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7180:6727)
at _e._deliver (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:49:2962)
at _e.fire (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:49:3283)
at Xmt.fire (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:6315:12156)
at MessagePort. (vscode-file://vscode-app/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:8972:18439)

Request ID: 2179aeb2-f4fa-4f7a-a00d-2c1cffb0cbf1
{“error”:“ERROR_OPENAI”,“details”:{“title”:“Unable to reach the model provider”,“detail”:“We encountered an issue when using your API key: Provider was unable to process your request\n\nAPI Error:\n\n\nRequest failed with status code 400: {\"error\":{\"message\":\"Provider returned error\",\"code\":400,\"metadata\":{\"raw\":\"Gemini models require OpenRouter reasoning details to be preserved in each request. Please refer to our docs: https://openrouter.ai/docs/use-cases/reasoning-tokens#preserving-reasoning-blocks. Upstream error: {\\n \\\"error\\\": {\\n \\\"code\\\": 400,\\n \\\"message\\\": \\\"Unable to submit request because function call `default_api:list_dir` in the 2. content block is missing a `thought_signature`. Learn more: https://docs.cloud.google.com/vertex-ai/generative-ai/docs/thought-signatures\\\",\\n \\\"status\\\": \\\"INVALID_ARGUMENT\\\"\\n }\\n}\\n\",\"provider_name\":\"Google\"}},\"user_id\":\"user_2smDyoir6cVtTliFhxZDiolmcWC\"}\n”,“additionalInfo”:{},“buttons”:,“planChoices”:},“isExpected”:true}

Does this stop you from using Cursor

Yes - Cursor is unusable

Hey, thanks for the report. OpenRouter is not officially supported by Cursor, which is why you’re running into compatibility issues with newer models. The errors you’re seeing (missing thought_signature, request format problems) happen because Cursor’s API implementation is built for officially supported providers.

Officially supported options:

  1. Use a Cursor Pro subscription (includes Claude, GPT-5, and other models)
  2. Add your own API keys for official providers (OpenAI, Anthropic, Google) in Settings → Models

Some older OpenRouter models might still work by chance, but there’s no guarantee they’ll stay compatible, especially as model APIs change over time (reasoning tokens, new function calling formats, etc).

If you need specific models that aren’t available through the official providers in Cursor, it’s better to use direct API keys from those providers instead of routing through OpenRouter.

1 Like

Since there is Bedrock and Azure integration, when will we see Vertex AI? OpenRouter was way to go, now I have to run custom local proxy exposing openAI endpoint to curosor and calling Google SDKs, which is not ideal as I run into occasional issues and need to change the implementation.