Accept Editing File Bug (since 2.0v)

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

I have been getting “Accept Editing” request to edit he files multiple times per day, very very annoying.

-It is inside the project, i also disabled all “prevent from editing” options
-It was working fine before Cursor 2.x
-It sometimes doesn’t ask, sometimes asks, confusing
-I don’t have any agents editing this file, only ONE chat active(open)

Steps to Reproduce

Just regular working on a project, it will ask suddenly

Screenshots / Screen Recordings

Operating System

Linux

Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.0.69
VSCode Version: 1.99.3
Commit: 63fcac100bd5d5749f2a98aa47d65f6eca61db30
Date: 2025-11-07T18:21:29.650Z
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.6-300.fc43.x86_64

Does this stop you from using Cursor

No - Cursor works, but with this issue

1 Like

Hey, thanks for the report.

Try:

  • Cursor Settings > Agent > Auto-Run Mode
  • Switch to “Run Everything” (automatically applies all file changes)
  • Or check protection settings: Cursor Settings > Agents > Auto-Run > External-File Protection / Dotfile Protection - try turning them off

This looks like a worktrees bug where the Agent doesn’t recognize project files as part of the workspace and keeps asking for permission: Cursor 2.0 Agent in Git Worktree asks to write to every file inside the worktree

Could you share:

  • What’s your current Auto-Run Mode?
  • Are file protections enabled (External-File Protection, etc.)?
  • Does this happen with all files or only specific ones?
  • Are you using symlinks, worktrees, or mounted drives?

Let me know if that helps.

1 Like

I set it to Run Everything, turn off all file protections, still it is not fixed, asking permission to edit files, i deleted project and cloned repo again, still same. Have smn reported this issue or am i alone at this one?

Hey, thanks for the update. Since the usual fixes didn’t help, we’ll need a bit more info to diagnose:

Could you share:

  • Are you using git worktrees in this project? (the behavior matches a known worktree bug)
  • Is your project directory on a symlink or a mounted drive?
  • Does this reproduce in a simple test project (e.g., a new folder with one file)?
  • When the permission prompt appears, open Developer Console (Help → Toggle Developer Tools) and share any errors you see
1 Like

I’m experiencing similar issue:

Agent running in worktree requests confirmation for all file edits even though I’m on “Accept everything” and dotfile protection is off.

Looks like it considers worktree contents under `./cursor/worktrees` as part of Cursor configs.

Could not reproduce on separate minimal project.

Attaching relevant screenshots. And here’s version info:

Version: 2.1.32

VSCode Version: 1.105.1

Commit: ef979b1b43d85eee2a274c25fd62d5502006e420

Date: 2025-11-25T05:00:12.749Z (4 hrs ago)

Electron: 37.7.0

Chromium: 138.0.7204.251

Node.js: 22.20.0

V8: 13.8.258.32-electron.0

OS: Darwin arm64 24.6.0

1 Like

Hey, thanks for the detailed report and screenshots, @mkuprionis, this confirms the worktree bug we’re currently tracking.

Your screenshots clearly show the issue: Cursor is treating files under .cursor/worktrees as Cursor configuration files, which is why it’s asking for permission even when “Run Everything” mode is enabled.

To help the team fix this, could you please share any console errors that appear when the permission prompt shows up?

  1. Open Help → Toggle Developer Tools
  2. Trigger the permission prompt
  3. Share any errors or warnings from the Console tab
1 Like

Hi,

below is what I’ve got. I’ve kicked of a prompt with “Use multiple models” selected, 2 models - Sonet 4.5 and Composer 1.

workbench.desktop.main.js:55 ERR i.with is not a function: TypeError: i.with is not a function
at BPt.normalizePath (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:50:81247)
at CLs.asCanonicalUri (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:8929:109342)
at Hno.createModelReference (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:6909:31405)
at de (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:6026:8753) TypeError: i.with is not a function
at BPt.normalizePath (workbench.desktop.main.js:50:81247)
at CLs.asCanonicalUri (workbench.desktop.main.js:8929:109342)
at Hno.createModelReference (workbench.desktop.main.js:6909:31405)
at de (workbench.desktop.main.js:6026:8753)
error @ workbench.desktop.main.js:55
error @ workbench.desktop.main.js:55
error @ workbench.desktop.main.js:8929
handleUnexpectedError @ workbench.desktop.main.js:8926
(anonymous) @ workbench.desktop.main.js:8926
onUnexpectedError @ workbench.desktop.main.js:27
Wa @ workbench.desktop.main.js:22
(anonymous) @ workbench.desktop.main.js:8926
workbench.desktop.main.js:4075 [composer] Error in getPopulatedContext: EntryNotFound (FileSystemError): Error: ENOENT: no such file or directory, stat ‘/Users/mindaugas/.cursor/worktrees/mapsy/U91NS/app/shared/mapsy-ui2/views/location-list.ts’
(anonymous) @ workbench.desktop.main.js:4075
await in (anonymous)
getPopulatedContext @ workbench.desktop.main.js:4075
submitChatMaybeAbortCurrent @ workbench.desktop.main.js:4059
await in submitChatMaybeAbortCurrent
(anonymous) @ workbench.desktop.main.js:52
Irr @ workbench.desktop.main.js:52
N6d @ workbench.desktop.main.js:52
n.value @ workbench.desktop.main.js:52
(anonymous) @ workbench.desktop.main.js:6208
To @ workbench.desktop.main.js:6208
(anonymous) @ workbench.desktop.main.js:6138
pi @ workbench.desktop.main.js:6138
onClick @ workbench.desktop.main.js:6138
(anonymous) @ workbench.desktop.main.js:2807
workbench.desktop.main.js:4075 [composer] Error in getPopulatedContext: EntryNotFound (FileSystemError): Error: ENOENT: no such file or directory, stat ‘/Users/mindaugas/.cursor/worktrees/mapsy/U91NS/app/shared/mapsy-ui2/controller/controller.ts’
(anonymous) @ workbench.desktop.main.js:4075
await in (anonymous)
getPopulatedContext @ workbench.desktop.main.js:4075
submitChatMaybeAbortCurrent @ workbench.desktop.main.js:4059
await in submitChatMaybeAbortCurrent
(anonymous) @ workbench.desktop.main.js:52
Irr @ workbench.desktop.main.js:52
N6d @ workbench.desktop.main.js:52
n.value @ workbench.desktop.main.js:52
(anonymous) @ workbench.desktop.main.js:6208
To @ workbench.desktop.main.js:6208
(anonymous) @ workbench.desktop.main.js:6138
pi @ workbench.desktop.main.js:6138
onClick @ workbench.desktop.main.js:6138
(anonymous) @ workbench.desktop.main.js:2807
workbench.desktop.main.js:4075 [composer] Error in getPopulatedContext: EntryNotFound (FileSystemError): Error: ENOENT: no such file or directory, stat ‘/Users/mindaugas/.cursor/worktrees/mapsy/RDFez/app/shared/mapsy-ui2/views/location-list.ts’
(anonymous) @ workbench.desktop.main.js:4075
await in (anonymous)
getPopulatedContext @ workbench.desktop.main.js:4075
submitChatMaybeAbortCurrent @ workbench.desktop.main.js:4059
await in submitChatMaybeAbortCurrent
(anonymous) @ workbench.desktop.main.js:52
Irr @ workbench.desktop.main.js:52
N6d @ workbench.desktop.main.js:52
n.value @ workbench.desktop.main.js:52
(anonymous) @ workbench.desktop.main.js:6208
await in (anonymous)
To @ workbench.desktop.main.js:6208
(anonymous) @ workbench.desktop.main.js:6138
pi @ workbench.desktop.main.js:6138
onClick @ workbench.desktop.main.js:6138
(anonymous) @ workbench.desktop.main.js:2807
workbench.desktop.main.js:4075 [composer] Error in getPopulatedContext: EntryNotFound (FileSystemError): Error: ENOENT: no such file or directory, stat ‘/Users/mindaugas/.cursor/worktrees/mapsy/RDFez/app/shared/mapsy-ui2/controller/controller.ts’
(anonymous) @ workbench.desktop.main.js:4075
await in (anonymous)
getPopulatedContext @ workbench.desktop.main.js:4075
submitChatMaybeAbortCurrent @ workbench.desktop.main.js:4059
await in submitChatMaybeAbortCurrent
(anonymous) @ workbench.desktop.main.js:52
Irr @ workbench.desktop.main.js:52
N6d @ workbench.desktop.main.js:52
n.value @ workbench.desktop.main.js:52
(anonymous) @ workbench.desktop.main.js:6208
await in (anonymous)
To @ workbench.desktop.main.js:6208
(anonymous) @ workbench.desktop.main.js:6138
pi @ workbench.desktop.main.js:6138
onClick @ workbench.desktop.main.js:6138
(anonymous) @ workbench.desktop.main.js:2807
workbench.desktop.main.js:55 WARN ToolCallEventService: Tracked tool call start - tool_77c72db5-9152-40da-bcf2-3a7cb2aa5eb (read_file)
warn @ workbench.desktop.main.js:55
warn @ workbench.desktop.main.js:55
warn @ workbench.desktop.main.js:8929
trackToolCallStart @ workbench.desktop.main.js:2942
toolWrappedStream @ workbench.desktop.main.js:2974
await in toolWrappedStream
(anonymous) @ workbench.desktop.main.js:4064
handleStreamComposer @ workbench.desktop.main.js:2786
streamResponse @ workbench.desktop.main.js:6996
(anonymous) @ workbench.desktop.main.js:7143
(anonymous) @ workbench.desktop.main.js:7145
(anonymous) @ workbench.desktop.main.js:7139
(anonymous) @ workbench.desktop.main.js:7139
(anonymous) @ workbench.desktop.main.js:7139
(anonymous) @ workbench.desktop.main.js:2974
(anonymous) @ workbench.desktop.main.js:7143
processCodeBlocks @ workbench.desktop.main.js:2900
submitChatMaybeAbortCurrent @ workbench.desktop.main.js:4064
await in submitChatMaybeAbortCurrent
(anonymous) @ workbench.desktop.main.js:52
Irr @ workbench.desktop.main.js:52
N6d @ workbench.desktop.main.js:52
n.value @ workbench.desktop.main.js:52
(anonymous) @ workbench.desktop.main.js:6208
workbench.desktop.main.js:55 WARN ToolCallEventService: Tracked tool call start - tool_3a210a2d-4e38-472f-926d-a530daa6465 (read_file)
warn @ workbench.desktop.main.js:55
warn @ workbench.desktop.main.js:55
warn @ workbench.desktop.main.js:8929
trackToolCallStart @ workbench.desktop.main.js:2942
toolWrappedStream @ workbench.desktop.main.js:2974
await in toolWrappedStream
(anonymous) @ workbench.desktop.main.js:4064
handleStreamComposer @ workbench.desktop.main.js:2786
streamResponse @ workbench.desktop.main.js:6996
(anonymous) @ workbench.desktop.main.js:7143
(anonymous) @ workbench.desktop.main.js:7145
(anonymous) @ workbench.desktop.main.js:7139
(anonymous) @ workbench.desktop.main.js:7139
(anonymous) @ workbench.desktop.main.js:7139
(anonymous) @ workbench.desktop.main.js:2974
(anonymous) @ workbench.desktop.main.js:7143
processCodeBlocks @ workbench.desktop.main.js:2900
submitChatMaybeAbortCurrent @ workbench.desktop.main.js:4064
await in submitChatMaybeAbortCurrent
(anonymous) @ workbench.desktop.main.js:52
Irr @ workbench.desktop.main.js:52
N6d @ workbench.desktop.main.js:52
n.value @ workbench.desktop.main.js:52
(anonymous) @ workbench.desktop.main.js:6208
workbench.desktop.main.js:55 WARN ToolCallEventService: Tracked tool call start - toolu_01RS4WmMYuJfVqEHTwtNc8rS (read_file)
warn @ workbench.desktop.main.js:55
warn @ workbench.desktop.main.js:55
warn @ workbench.desktop.main.js:8929
trackToolCallStart @ workbench.desktop.main.js:2942
toolWrappedStream @ workbench.desktop.main.js:2974
await in toolWrappedStream
(anonymous) @ workbench.desktop.main.js:4064
handleStreamComposer @ workbench.desktop.main.js:2786
streamResponse @ workbench.desktop.main.js:6996
(anonymous) @ workbench.desktop.main.js:7143
(anonymous) @ workbench.desktop.main.js:7145
(anonymous) @ workbench.desktop.main.js:7139
(anonymous) @ workbench.desktop.main.js:7139
(anonymous) @ workbench.desktop.main.js:7139
(anonymous) @ workbench.desktop.main.js:2974
(anonymous) @ workbench.desktop.main.js:7143
processCodeBlocks @ workbench.desktop.main.js:2900
submitChatMaybeAbortCurrent @ workbench.desktop.main.js:4064
await in submitChatMaybeAbortCurrent
(anonymous) @ workbench.desktop.main.js:52
Irr @ workbench.desktop.main.js:52
N6d @ workbench.desktop.main.js:52
n.value @ workbench.desktop.main.js:52
(anonymous) @ workbench.desktop.main.js:6208
To @ workbench.desktop.main.js:6208
(anonymous) @ workbench.desktop.main.js:6138
pi @ workbench.desktop.main.js:6138
onClick @ workbench.desktop.main.js:6138
(anonymous) @ workbench.desktop.main.js:2807
workbench.desktop.main.js:55 WARN ToolCallEventService: Tracked tool call start - toolu_013jrWvosTRSxQSvXG64h37N (read_file)

1 Like

Same issue here. Makes multiple agents feature completely unusable.

1 Like

Thanks for the detailed reports and console logs, @mkuprionis, that’s really helpful! And thanks for confirming, @Mark_Feighery.

This is a known worktree-related bug we’re tracking.
Cursor is incorrectly treating files under .cursor/worktrees as Cursor configuration files, which is why it’s asking for permission even with “Run Everything” enabled.

@mkuprionis, your console errors confirm the issue, including TypeError: i.with is not a function and path resolution problems with worktree files.

Temporary workaround: unfortunately, the current options like “Run Everything” mode or disabling protections don’t fix this.

I’ll pass these latest console errors from version 2.1.32 to the team.

2 Likes

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Agent waits for file edits confirmation in auto run mode

Steps to Reproduce

ask to edit a file

Screenshots / Screen Recordings

Operating System

Windows 10/11

Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.2.0-pre.5.patch.0 (system setup)
VSCode Version: 1.105.1
Commit: 5093e1c9ed7fd7a087b3c58c6ec71520b44bdc00
Date: 2025-11-24T08:24:20.953Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Windows_NT x64 10.0.26200

For AI issues: add Request ID with privacy disabled

efd2d2f5-bba9-48a7-a207-1fe477476f6b

Does this stop you from using Cursor

Yes - Cursor is unusable

1 Like

I am experiencing the same issue still. Report below;

Bug Report: Auto-Accept Still Not Working in 2.1.39

Environment

  • Cursor Version: 2.1.39

  • VSCode Version: 1.105.1

  • Commit: 60d42bed27e5775c43ec0428d8c653c49e58e260

  • Date: 2025-11-27T02:30:49.286Z

  • OS: macOS Darwin arm64 25.1.0 (Apple Silicon)

  • Electron: 37.7.0

  • Chromium: 138.0.7204.251

  • Node.js: 22.20.0

Issue Description

File edits require manual confirmation (pressing Enter) after each change, despite having “Run Everything (Unsandboxed)” mode enabled. Previously, changes were auto-accepted without any key presses.

Current Settings (Verified Correct)

  • Auto-Run Mode: Run Everything (Unsandboxed) :white_check_mark:

  • Auto-Accept on Commit: ON :white_check_mark:

  • External-File Protection: ON

  • Dotfile Protection: ON

  • File-Deletion Protection: OFF

  • Browser Protection: OFF

Expected Behavior

With “Run Everything (Unsandboxed)” selected, file edits should be applied automatically without requiring manual confirmation.

Actual Behavior

Every file edit prompts for confirmation and requires pressing Enter to accept, even for files within the workspace that aren’t dotfiles or external files.

Steps to Reproduce

  1. Open any project in Cursor 2.1.39

  2. Ensure Auto-Run Mode is set to “Run Everything (Unsandboxed)”

  3. Start an Agent conversation that makes file edits

  4. Observe that each file edit requires pressing Enter to confirm

Additional Notes

  • This worked correctly in previous versions (pre-2.0)

  • Toggling External-File Protection and Dotfile Protection OFF does not resolve the issue

  • Restarting Cursor after changing settings does not resolve the issue

1 Like

Thanks for the info! This is a known bug with file handling that is already being tracked.

Even in “Run Everything (Unsandboxed)” mode, Cursor asks for confirmation for every file - this is due to incorrect file path handling, especially in worktrees.

Quick checks:

  • Are you using git worktrees?
  • Open Help → Toggle Developer Tools → Console and share any errors
  • Try disabling all protections: Cursor Settings > Agents > Auto-Run > turn off External-File Protection and Dotfile Protection

Related bug here: Cursor 2.0 Agent in Git Worktree asks to write to every file inside the worktree - same issue.

The team is already working on a fix. Please share your test results and console logs.

1 Like

Happens in SSH session.

  • Are you using git worktrees?
    No
1 Like

@deanrie, we’re experiencing the same problem. Even with Auto-Run Mode set to ‘Run Everything (Unsandboxed)’ and with External-File Protection and Dotfile Protection disabled, Cursor still asks for permission before modifying files. This isn’t just a worktree issue for us; it also occurs when I’m using local agents.

Here’s our “Auto-Run” settings:

Here’s my Cursor version info:

Version: 2.1.46
VSCode Version: 1.105.1
Commit: ab326d0767c02fb9847b342c43ea58275c4b1680
Date: 2025-12-02T03:59:29.283Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Darwin arm64 23.3.0
3 Likes

man, they really ■■■■

are you having this issue too?

Having a similar issue, but for creating new files.

When the AI assistant creates new files during multi-step operations
(e.g., TODO-based tasks), the ACCEPT button that should appear below
the file preview card intermittently fails to render. This forces
manual file creation via copy-paste.

The button renders correctly during simple, single-step operations.

Environment:

  • OS: Windows 10 (Build 26220)
  • Cursor Version: [your version]
  • Reproducible: During AI multi-step/TODO operations

Expected: ACCEPT button should always render for file creation approval
Actual: Button missing during complex multi-step operations

1 Like

+1, no worktrees, version 2.1.48

1 Like

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

After the new Cursor update (2.1.49), a major bug appeared for me, when agent creates new file, it waits for my approval, i cant either opens the file bcs its still didnt been applied, and i cant also accept the edit, that keeps it forever waiting

Steps to Reproduce

Send message to ai involving creating new files

Expected Behavior

expected to show any button so i can accept/deny

Screenshots / Screen Recordings

Operating System

Windows 10/11

Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.1.49 (user setup)
VSCode Version: 1.105.1
Commit: 21a2ed198584d56a91c0b996d1a09c93f8538440
Date: 2025-12-05T07:49:06.016Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Windows_NT x64 10.0.26200

For AI issues: which model did you use?

Composer 1, Sonnet 4.5

For AI issues: add Request ID with privacy disabled

Request ID: 32d7f226-35ea-4cef-bacd-f37432189b05

Does this stop you from using Cursor

Yes - Cursor is unusable

3 Likes

Update

The Accept btn has appeared to me

but it still annoying and a bug, the ai is editing in the same workspace so it should be automatically accepted.

1 Like