Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
Cursor Bug Report (Forum draft)
Post to: Bug Reports - Cursor - Community Forum
Category: Support → Bug Reports
Title: Plan→Agent mode switch reported as “rejected by user” when approval UI timer expires
Environment
- OS: macOS 26.5.1 (Build 25F80)
- Cursor version: 3.12.17
- Request ID: 4a2fbc16-dc53-4338-a3c6-6da0aeac379f
Steps to reproduce
- Open a chat in Plan mode.
- User explicitly asks to implement / says go.
- Agent calls
SwitchModetoagent(approval UI appears). - Do not click Reject or Approve — wait until the approval timer expires.
- Observe the tool result returned to the agent.
Expected behavior
- Timer expiry is reported as expired / timed out / cancelled, not as an intentional user rejection.
- Agent is allowed to retry the mode switch or ask the user to switch manually.
- After an explicit user “go”, the workflow is not blocked by a false rejection.
Actual behavior
- Tool result: “Mode switch was rejected by the user. Do not attempt to switch modes again.”
- User did not reject; only the approval timer expired.
- Agent is instructed not to call
SwitchModeagain and remains stuck in Plan mode (cannot edit code), even though the user wanted execution.
Why this is wrong (UX)
- While the approval is open, the user is waiting on that question — they are not “elsewhere”.
- A timeout is not a rejection. Mislabeling it breaks Plan→Agent handoff and forces manual mode switching.
- Comparable “Run” approvals do not behave this way in practice for the user’s workflow.
Impact
- False “user rejected” signal.
- Blocks implementation after the user already said go.
- Wastes time and erodes trust in the approval UI.
Suggested fix
Primary: Remove the timer on Plan→Agent mode-switch approval. Keep the dialog open until the user clicks Approve or Reject — same mental model as an explicit “go”. There is no user-facing safety benefit to auto-expiring this prompt; timeout only creates stress and false rejections.
If a timeout must exist for internal reasons (should be justified publicly):
- Result must be
expired/timeout, neverrejected. - Agent must be allowed to retry.
- Prefer: after explicit user “go”, skip the second gate or auto-approve Agent mode.
Steps to Reproduce
siehe oben
Expected Behavior
siehe oben
Operating System
MacOS
Version Information
siehe oben
For AI issues: add Request ID with privacy disabled
siehe oben
Additional Information
siehe oben
Does this stop you from using Cursor
No - Cursor works, but with this issue