I am writing to report two technical issues I encountered while using a User API Key (BYOK) on Cursor, specifically regarding the Summarize feature and the input text field behavior on macOS.
Issue 1: Erratic Quota Routing with the Summarize Feature
When a User API Key is active, the system’s routing logic for the background Summarize task is highly unstable:
Custom Models Fail: Running a summary with custom-added models in the list completely fails to execute.
Erratic Quota Consumption: When switching back to the pre-listed default models, the summary works, but the token billing fluctuates randomly. It unpredictably shifts between my Cursor account’s Included balance, the Free tier quota.
Issue 2: IME Typing Glitch on macOS Lets Me Bypass Grok’s Key Restriction
The Trigger: I used a slash command (e.g., /summarize) using a non-English IME on macOS while using a custom User API Key.
The Glitch: Right after the command runs, the IME buffer glitches and automatically sends a random leftover text snippet (like “su”) as a new message.
The Bug: Grok 4.7 usually blocks custom keys, but it actually responds to this leaked “su” message because it gets caught in the active background routing session.
The Reset: Once Grok answers that leaked message, the app blocks me again on the next prompt with the usual “unsupported key” error.
For AI issues: which model did you use?
Model name (e.g., Sonnet 4, Tab…)
For AI issues: add Request ID with privacy disabled
Request ID: f9a7046a-279b-47e5-ab48-6e8dc12daba1
For Background Agent issues, also post the ID: bc-…
Additional Information
Add any other context about the problem here.
Does this stop you from using Cursor?
Yes - Cursor is unusable
Sometimes - I can sometimes use Cursor
No - Cursor works, but with this issue
The more details you provide, the easier it is for us to reproduce and fix the issue. Thanks!
Hey @TuanNe, thanks for the report, and for separating the two parts so clearly.
I’ve flagged the summarize behavior to the team. When your own API key is on, the /summarize command currently doesn’t carry that key with it. That’s why it fails on your custom models, and why on Cursor’s built-in models (like Grok 4.7) it runs on your Cursor plan instead. The leftover “su” message was sent as part of that same summarize request, which is why Grok answered it once and then went back to the usual “unsupported key” error on your next prompt.
On billing: conversation summaries, including the automatic ones, always run on Cursor’s own summarization model, even when you chat on your own key. So they count toward your plan’s usage, not your provider’s. Which pool they draw from depends on what’s available on your plan at that moment, which is why it can look inconsistent.
In the meantime, for chats on your custom models, the most reliable option is to start a new chat when the context gets full instead of running /summarize.
For the IME part, could you try this and tell me what happens?
Restart Cursor and open a new Agent chat.
Select one of your custom models in the model picker.
Switch your keyboard to the non-English input method you normally use.
Type /summarize and press Enter to run it.
Watch the chat for a few seconds without typing anything else.
Does an extra message (like “su”) appear by itself after step 4? If so, please reply with the name of the input method (for example Vietnamese Telex), your macOS version, and your Cursor version (Cursor > About Cursor).