Stuck "Planning next move" when chat prompt includes @ file reference

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

On cursor version 2.5.17, any chat prompt with an @.file reference causes the chat to get stuck in “Planning next move” indefinitely.

Steps to Reproduce

  • Fresh install of Cursor 2.5.17
  • Create an empty folder with a single text file containing some text
  • Open folder in Cursor and send any chat prompt containing an @.file reference to the file
  • Chat hangs indefinitely on planning next move

Expected Behavior

  • Chat should not hang when prompt includes @.file reference

Operating System

MacOS

Version Information

Version: 2.5.17 (Universal)
VSCode Version: 1.105.1
Commit: 7b98dcb824ea96c9c62362a5e80dbf0d1aae4770
Date: 2026-02-17T05:58:33.110Z
Build Type: Stable
Release Track: Nightly
Electron: 39.3.0
Chromium: 142.0.7444.265
Node.js: 22.21.1
V8: 14.2.231.22-electron.0
OS: Darwin arm64 25.2.0

For AI issues: which model did you use?

Tested on various models including:

  • Composer 1.5
  • Codex 5.3

Additional Information

Downgrading to Cursor 2.4.37 resolved the issue.

Attempted solutions that did not work:

  • tried disabling HTTP 2.0
  • tried clearing Cursor application caches
  • tried a full re-install of Cursor 2.5.17
  • tried deleting/re-building code index

Does this stop you from using Cursor

Yes - Cursor is unusable

Hey, thanks for the report. I couldn’t reproduce this on my side, so it might be something specific to your environment.

Can you share a few things so we can narrow it down?

  1. The request ID from the failed attempt (chat context menu in the top right > Copy Request ID)
  2. The developer console logs at the time it freezes (Help > Toggle Developer Tools > Console tab, look for red messages)
  3. What the indexing status shows at that time

Also, do you have any extensions installed, or is this a completely clean Cursor install?

Request ID:
3781ff0c-04ef-4d9c-a6a9-21c906d08fd9

Indexing status: codebase indexing shows 100%

This is not from a clean install, so I do have some extensions installed. I can re-run without, but I was able to reproduce this without any extensions previously.

There are some console errors at the time of chat hanging. This looks like the main culprit:

workbench.desktop.main.js:31918 This document requires ‘TrustedScript’ assignment. The action has been blocked.
(anonymous) @ workbench.desktop.main.js:31918
workbench.desktop.main.js:31918 The JavaScript Function constructor does not accept TrustedString arguments. See Home · w3c/trusted-types Wiki · GitHub for more information. workbench.desktop.main.js:64 WARN Missing property “rpcFileLoggerFolder” in oldValue. Filling with value from initValue. Please add a migration if necessary. warn @ workbench.desktop.main.js:64 workbench.desktop.main.js:64 WARN Via ‘product.json#extensionEnabledApiProposals’ extension ‘ms-toolsai.datawrangler’ wants API proposal ‘debugFocus’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned. warn @ workbench.desktop.main.js:64 workbench.desktop.main.js:64 WARN Via ‘product.json#extensionEnabledApiProposals’ extension ‘ms-vscode.vscode-copilot-data-analysis’ wants API proposal ‘chatVariableResolver’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned. warn @ workbench.desktop.main.js:64 workbench.desktop.main.js:64 WARN Via ‘product.json#extensionEnabledApiProposals’ extension ‘ms-python.python’ wants API proposal ‘terminalShellType’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned. warn @ workbench.desktop.main.js:64 workbench.desktop.main.js:64 WARN Via ‘product.json#extensionEnabledApiProposals’ extension ‘ms-python.vscode-python-envs’ wants API proposal ‘terminalShellType’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned. warn @ workbench.desktop.main.js:64 workbench.desktop.main.js:64 WARN Via ‘product.json#extensionEnabledApiProposals’ extension ‘github.copilot-chat’ wants API proposal ‘chatReadonlyPromptReference’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned. warn @ workbench.desktop.main.js:64 workbench.desktop.main.js:64 WARN Via ‘product.json#extensionEnabledApiProposals’ extension ‘ms-azuretools.vscode-azure-github-copilot’ wants API proposal ‘lmTools’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned. warn @ workbench.desktop.main.js:64 workbench.desktop.main.js:64 WARN Via ‘product.json#extensionEnabledApiProposals’ extension ‘vscjava.vscode-java-pack’ wants API proposal ‘lmTools’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned. warn @ workbench.desktop.main.js:64 workbench.desktop.main.js:64 WARN Via ‘product.json#extensionEnabledApiProposals’ extension ‘apidev.azure-api-center’ wants API proposal ‘chatParticipant’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned. warn @ workbench.desktop.main.js:64 workbench.desktop.main.js:64 WARN Via ‘product.json#extensionEnabledApiProposals’ extension ‘apidev.azure-api-center’ wants API proposal ‘languageModels’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned. warn @ workbench.desktop.main.js:64 workbench.desktop.main.js:64 WARN [ms-python.python]: Cannot register ‘python.venvPath’. This property is already registered. warn @ workbench.desktop.main.js:64 workbench.desktop.main.js:44179 Overwriting grammar scope name to file mapping for scope source.js.jsx. Old grammar file: file:///Applications/Cursor.app/Contents/Resources/app/extensions/javascript/syntaxes/JavaScriptReact.tmLanguage.json. New grammar file: file:///Users/paul/.cursor/extensions/ms-vscode.vscode-typescript-next-5.3.20230808-universal/syntaxes/JavaScriptReact.tmLanguage.json register @ workbench.desktop.main.js:44179 workbench.desktop.main.js:44179 Overwriting grammar scope name to file mapping for scope source.js. Old grammar file: file:///Applications/Cursor.app/Contents/Resources/app/extensions/javascript/syntaxes/JavaScript.tmLanguage.json. New grammar file: file:///Users/paul/.cursor/extensions/ms-vscode.vscode-typescript-next-5.3.20230808-universal/syntaxes/JavaScript.tmLanguage.json register @ workbench.desktop.main.js:44179 workbench.desktop.main.js:44179 Overwriting grammar scope name to file mapping for scope source.ts. Old grammar file: file:///Applications/Cursor.app/Contents/Resources/app/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json. New grammar file: file:///Users/paul/.cursor/extensions/ms-vscode.vscode-typescript-next-5.3.20230808-universal/syntaxes/TypeScript.tmLanguage.json register @ workbench.desktop.main.js:44179 workbench.desktop.main.js:44179 Overwriting grammar scope name to file mapping for scope source.tsx. Old grammar file: file:///Applications/Cursor.app/Contents/Resources/app/extensions/typescript-basics/syntaxes/TypeScriptReact.tmLanguage.json. New grammar file: file:///Users/paul/.cursor/extensions/ms-vscode.vscode-typescript-next-5.3.20230808-universal/syntaxes/TypeScriptReact.tmLanguage.json register @ workbench.desktop.main.js:44179 textMateTokenizationWorker.workerMain.js:28 Overwriting grammar scope name to file mapping for scope source.js.jsx. Old grammar file: file:///Applications/Cursor.app/Contents/Resources/app/extensions/javascript/syntaxes/JavaScriptReact.tmLanguage.json. New grammar file: file:///Users/paul/.cursor/extensions/ms-vscode.vscode-typescript-next-5.3.20230808-universal/syntaxes/JavaScriptReact.tmLanguage.json register @ textMateTokenizationWorker.workerMain.js:28 textMateTokenizationWorker.workerMain.js:28 Overwriting grammar scope name to file mapping for scope source.js. Old grammar file: file:///Applications/Cursor.app/Contents/Resources/app/extensions/javascript/syntaxes/JavaScript.tmLanguage.json. New grammar file: file:///Users/paul/.cursor/extensions/ms-vscode.vscode-typescript-next-5.3.20230808-universal/syntaxes/JavaScript.tmLanguage.json register @ textMateTokenizationWorker.workerMain.js:28 textMateTokenizationWorker.workerMain.js:28 Overwriting grammar scope name to file mapping for scope source.ts. Old grammar file: file:///Applications/Cursor.app/Contents/Resources/app/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json. New grammar file: file:///Users/paul/.cursor/extensions/ms-vscode.vscode-typescript-next-5.3.20230808-universal/syntaxes/TypeScript.tmLanguage.json register @ textMateTokenizationWorker.workerMain.js:28 textMateTokenizationWorker.workerMain.js:28 Overwriting grammar scope name to file mapping for scope source.tsx. Old grammar file: file:///Applications/Cursor.app/Contents/Resources/app/extensions/typescript-basics/syntaxes/TypeScriptReact.tmLanguage.json. New grammar file: file:///Users/paul/.cursor/extensions/ms-vscode.vscode-typescript-next-5.3.20230808-universal/syntaxes/TypeScriptReact.tmLanguage.json register @ textMateTokenizationWorker.workerMain.js:28 workbench.desktop.main.js:64 WARN No search provider registered for scheme: file, waiting warn @ workbench.desktop.main.js:64 workbench.desktop.main.js:64 ERR [Extension Host] (node:10151) [DEP0040] DeprecationWarning: The punycode module is deprecated. Please use a userland alternative instead. (Use Cursor Helper (Plugin) --trace-deprecation … to show where the warning was created) error @ workbench.desktop.main.js:64 workbench.desktop.main.js:43319 [Extension Host] (node:10151) [DEP0040] DeprecationWarning: The punycode module is deprecated. Please use a userland alternative instead. (Use Cursor Helper (Plugin) --trace-deprecation … to show where the warning was created) klv @ workbench.desktop.main.js:43319 workbench.desktop.main.js:44241 [transport] Connect error in unary AI connect ConnectError: [unauthenticated] You must be a team member to access this resource at t (workbench.desktop.main.js:43352:36310) at async Object.getTeamCommands (workbench.desktop.main.js:31947:4386) at async Ytu.loadTeamCommands (workbench.desktop.main.js:47220:5269) Object error @ workbench.desktop.main.js:44241 workbench.desktop.main.js:47220 Failed to load team commands: ConnectError: [unauthenticated] You must be a team member to access this resource at t (workbench.desktop.main.js:43352:36310) at async Object.getTeamCommands (workbench.desktop.main.js:31947:4386) at async Ytu.loadTeamCommands (workbench.desktop.main.js:47220:5269) loadTeamCommands @ workbench.desktop.main.js:47220 workbench.desktop.main.js:32118 [PluginsProviderService] getPluginMcpServers took 1782.3ms _callWithTimeout @ workbench.desktop.main.js:32118 workbench.desktop.main.js:32118 [PluginsProviderService] getPluginHooks took 1710.0ms _callWithTimeout @ workbench.desktop.main.js:32118 workbench.desktop.main.js:43319 [Extension Host] rejected promise not handled within 1 second: Error: cannot encode field agent.v1.CursorRule.type to JSON: cannot encode field agent.v1.CursorRuleType.agent_fetched to JSON: cannot encode field agent.v1.CursorRuleTypeAgentFetched.description to JSON klv @ workbench.desktop.main.js:43319 workbench.desktop.main.js:43319 [Extension Host] stack trace: Error: cannot encode field agent.v1.CursorRule.type to JSON: cannot encode field agent.v1.CursorRuleType.agent_fetched to JSON: cannot encode field agent.v1.CursorRuleTypeAgentFetched.description to JSON at Object.writeMessage (/Applications/Cursor.app/Contents/Resources/app/extensions/cursor-agent-exec/dist/main.js:2:3251582) at d.toJson (/Applications/Cursor.app/Contents/Resources/app/extensions/cursor-agent-exec/dist/main.js:2:4147122) at d.toJSON (/Applications/Cursor.app/Contents/Resources/app/extensions/cursor-agent-exec/dist/main.js:2:4147296) at JSON.stringify () at N2e (file:///Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:48:119977) at mi.serializeRequestArguments (file:///Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:52:4251) at cu._remoteCall (file:///Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:48:126241) at r..a.charCodeAt.r. (file:///Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:48:122712) at m_s.updateCursorRules (file:///Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:168:2404845) at Object.updateCursorRules (file:///Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:205:140181) at vLe (file:///Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:205:136405) at Object.value [as updateCursorRules] (file:///Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:205:143570) at /Applications/Cursor.app/Contents/Resources/app/extensions/cursor-agent-exec/dist/main.js:2:28693 klv @ workbench.desktop.main.js:43319 workbench.desktop.main.js:43333 [anysphere.cursor-agent-exec]cannot encode field agent.v1.CursorRule.type to JSON: cannot encode field agent.v1.CursorRuleType.agent_fetched to JSON: cannot encode field agent.v1.CursorRuleTypeAgentFetched.description to JSON $onExtensionRuntimeError @ workbench.desktop.main.js:43333 workbench.desktop.main.js:43333 Error: cannot encode field agent.v1.CursorRule.type to JSON: cannot encode field agent.v1.CursorRuleType.agent_fetched to JSON: cannot encode field agent.v1.CursorRuleTypeAgentFetched.description to JSON at Object.writeMessage (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/extensions/cursor-agent-exec/dist/main.js:2:3251582) at d.toJson (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/extensions/cursor-agent-exec/dist/main.js:2:4147122) at d.toJSON (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/extensions/cursor-agent-exec/dist/main.js:2:4147296) at JSON.stringify () at N2e (/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:48:119977) at mi.serializeRequestArguments (/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:52:4251) at cu._remoteCall (/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:48:126241) at r..a.charCodeAt.r. (/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:48:122712) at m_s.updateCursorRules (/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:168:2404845) at Object.updateCursorRules (/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:205:140181) at vLe (/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:205:136405) at Object.value [as updateCursorRules] (/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:205:143570) at vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/extensions/cursor-agent-exec/dist/main.js:2:28693 $onExtensionRuntimeError @ workbench.desktop.main.js:43333 workbench.desktop.main.js:64 ERR An unknown error occurred. Please consult the log for more details. Object[[Prototype]]: Objectconstructor: ƒ Object()assign: ƒ assign()create: ƒ create()defineProperties: ƒ defineProperties()defineProperty: ƒ defineProperty()entries: ƒ entries()freeze: ƒ freeze()fromEntries: ƒ fromEntries()getOwnPropertyDescriptor: ƒ getOwnPropertyDescriptor()getOwnPropertyDescriptors: ƒ getOwnPropertyDescriptors()getOwnPropertyNames: ƒ getOwnPropertyNames()getOwnPropertySymbols: ƒ getOwnPropertySymbols()getPrototypeOf: ƒ getPrototypeOf()groupBy: ƒ groupBy()hasOwn: ƒ hasOwn()is: ƒ is()isExtensible: ƒ isExtensible()isFrozen: ƒ isFrozen()isSealed: ƒ isSealed()keys: ƒ keys()length: 1name: "Object"preventExtensions: ƒ preventExtensions()prototype: {**defineGetter**: ƒ, **defineSetter**: ƒ, hasOwnProperty: ƒ, **lookupGetter**: ƒ, **lookupSetter**: ƒ, …}seal: ƒ seal()setPrototypeOf: ƒ setPrototypeOf()values: ƒ values()arguments: (…)caller: (…)[[Prototype]]: ƒ ()[[Scopes]]: Scopes[0]hasOwnProperty: ƒ hasOwnProperty()isPrototypeOf: ƒ isPrototypeOf()propertyIsEnumerable: ƒ propertyIsEnumerable()toLocaleString: ƒ toLocaleString()toString: ƒ toString()valueOf: ƒ valueOf()**defineGetter**: ƒ **defineGetter**()**defineSetter**: ƒ **defineSetter**()**lookupGetter**: ƒ **lookupGetter**()**lookupSetter**: ƒ **lookupSetter**()**proto**: (…)get **proto**: ƒ **proto**()set **proto**: ƒ **proto**() error @ workbench.desktop.main.js:64 workbench.desktop.main.js:44241 [composer] No first token received within 2s Object _log @ workbench.desktop.main.js:44241 workbench.desktop.main.js:44241 [composer] No first token received within 4s Object _log @ workbench.desktop.main.js:44241 workbench.desktop.main.js:44241 [composer] No first token received within 6s Object _log @ workbench.desktop.main.js:44241 workbench.desktop.main.js:44241 [composer] No first token received within 8s Object _log @ workbench.desktop.main.js:44241 workbench.desktop.main.js:44241 [composer] No first token received within 10s Object _log @ workbench.desktop.main.js:44241 workbench.desktop.main.js:44241 [composer] No first token received within 12s Object _log @ workbench.desktop.main.js:44241 workbench.desktop.main.js:44241 [composer] No first token received within 14s Object _log @ workbench.desktop.main.js:44241 workbench.desktop.main.js:44241 [composer] No first token received within 16s Object _log @ workbench.desktop.main.js:44241 workbench.desktop.main.js:44241 [composer] No first token received within 32s Object _log @ workbench.desktop.main.js:44241`