Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
I am new to Cursor and using it with an OpenAI-compatible base URL. I set the OpenAI Base URL and Model in the Cursor IDE under Settings → Models → API Keys. Then I clicked Toggle Agents and sent a message to GPT 5.5 with medium reasoning.
I first got this error from my OpenAI-compatible endpoint:
Missing required parameter: ‘messages’
To debug, I put a small logging proxy in front of my endpoint and captured the request shape. When digging into it it appears that Cursor sends:
POST /openai/v1/chat/completions
But the JSON body is Responses API shaped, not Chat Completions shaped. It includes fields like:
{
“model”: “gpt-5.5”,
“input”: […],
“stream”: true,
“include”: [“reasoning.encrypted_content”],
“reasoning”: {“effort”: “medium”, “summary”: “auto”},
“text”: {“verbosity”: “low”},
“stream_options”: {“include_usage”: true}
}
This gets rejected by a Chat-Completions compatible endpoint because chat/completions expects messages, not input.
Then I tested a proxy workaround by:
- Rewriting
/openai/v1/chat/completionsto/openai/v1/responses. - Remove
stream_optionsfrom the request. From what I can tell, the Responses API supportsstream_options: {"include_obfuscation": false}, but Cursor is sendingstream_options: {"include_usage": true}, which seems specific to the Chat Completions API. This needed to be removed for the Responses request to succeed. - Forwarding the Responses-shaped body upstream.
That makes the upstream request succeed. However, Cursor still does not render anything unless the proxy also translates the Responses SSE output back into Chat Completions streaming chunks using choices[].delta.
So Cursor appears to be using:
- Request path: Chat Completions
- Request body: Responses API
- Expected output parser: Chat Completions streaming
Steps to Reproduce
Steps to reproduce:
- Configure Cursor with a custom OpenAI-compatible base URL.
- Use model
gpt-5.5with reasoning enabled. - Send any prompt.
- Log the outbound request path and top-level JSON body keys.
- Observe that Cursor posts to
/chat/completionswith a Responses-styleinputbody.
Expected Behavior
Expected behavior should be one of:
- Send Responses-shaped bodies to
/v1/responsesand parse Responses shaped results - Or send Chat Completions-shaped bodies to
/v1/chat/completionsand parse Chat Completions chunks.
Operating System
MacOS
Version Information
Version: 3.2.14
VSCode Version: 1.105.1
Commit: 6e821a7fc68d5ce5b4ab821f73fe4137e0851e60
Date: 2026-04-28T13:25:40.706Z
Layout: editor
Build Type: Stable
Release Track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
OS: Darwin arm64 25.3.0
For AI issues: which model did you use?
GPT 5.5
Does this stop you from using Cursor
No - Cursor works, but with this issue