Cursor forever wait for command on remote ubuntu

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Cursor wait for the any command forever.

Steps to Reproduce

  1. Connect to remote ubuntu (Linux wheeltec 6.6.31+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.31-1+rpt1 (2024-05-29) aarch64 GNU/Linux)
  2. Instruct cursor do something needs command executation.

Expected Behavior

Execute the command normally.

Screenshots / Screen Recordings

Operating System

Windows 10/11

Version Information

Version: 2.4.37 (user setup)
VSCode Version: 1.105.1
Commit: 7b9c34466f5c119e93c3e654bb80fe9306b6cc70
Date: 2026-02-12T23:15:35.107Z
Build Type: Stable
Release Track: Default
Electron: 39.2.7
Chromium: 142.0.7444.235
Node.js: 22.21.1
V8: 14.2.231.21-electron.0
OS: Windows_NT x64 10.0.26200

For AI issues: which model did you use?

Auto

For AI issues: add Request ID with privacy disabled

9ac9530d-82b3-4b16-93a3-9f804c6bb423

Additional Information

The command works well if I type it in terminal.
On other remote platform cursor works normally.

Does this stop you from using Cursor

Yes - Cursor is unusable

Hey, this is a known issue where agent commands can hang over Remote SSH. A few things to try:

  1. Update Cursor. You’re on 2.4.37 from Feb 12, which is about 5 weeks old. There have been a few terminal fixes since then. Go to Help > Check for Updates.

  2. Turn on Legacy Terminal Tool as a workaround:

    • Cursor Settings Cmd+Shift+J > Agents > Inline Editing & Terminal > turn on Legacy Terminal Tool
    • Cmd+Shift+P > Terminal: Kill All Terminals
    • Fully restart Cursor
  3. If it still happens after updating, please share logs from Developer Tools right when the command hangs. Go to Help > Toggle Developer Tools > Console.

Raspberry Pi aarch64 is a less common platform, so there may be some edge cases in terminal handling. The team is aware of this class of SSH issues, and your report helps with prioritization.

Related thread:

Let me know how it goes after the update.

1 Like

Thanks for your help.

I did instructions above, the command didn’t block again, but there’s no output ( seems not really executed).

Console content ( I cut some text in the front because complete text exceed length limitation) :

fea2f546c979a0a4ad1deab23552a43568807590/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-transport-utils.js:52:31)\n\tat IncomingMessage.emit (node:events:530:35)\n\tat endReadableNT (node:internal/streams/readable:1698:12)\n\tat process.processTicksAndRejections (node:internal/process/task_queues:82:21)","message":"Bad Request","code":"400","name":"OTLPExporterError","data":"{\"error\":\"Trace spans collection is disabled for NO_STORAGE privacy mode\"}"}
A2y @ workbench.desktop.main.js:43770
workbench.desktop.main.js:46702 [composer] No first token received within 2s Object
_log @ workbench.desktop.main.js:46702
workbench.desktop.main.js:46702 [composer] No first token received within 4s Object
_log @ workbench.desktop.main.js:46702
workbench.desktop.main.js:46702 [composer] No first token received within 6s Object
_log @ workbench.desktop.main.js:46702
workbench.desktop.main.js:46702 [composer] No first token received within 8s Object
_log @ workbench.desktop.main.js:46702
workbench.desktop.main.js:46702 [composer] No first token received within 10s Object
_log @ workbench.desktop.main.js:46702
workbench.desktop.main.js:46702 [composer] No first token received within 12s Object
_log @ workbench.desktop.main.js:46702
workbench.desktop.main.js:46702 [composer] No first token received within 14s Object
_log @ workbench.desktop.main.js:46702
workbench.desktop.main.js:46702 [composer] No first token received within 16s Object
_log @ workbench.desktop.main.js:46702
workbench.desktop.main.js:34361 [TranscriptStore] Failed to append transcript, falling back to full write: Error: ENOENT: no such file or directory, open 'C:\home\wheeltec\.cursor\projects\home-wheeltec-wheeltec-ros2\agent-transcripts\af7d287c-d422-48ff-890a-e6906e5634cd\af7d287c-d422-48ff-890a-e6906e5634cd.jsonl'
    at async open (node:internal/fs/promises:636:25)
    at async writeFile (node:internal/fs/promises:1205:14)
    at async Xp.appendFile (file:///C:/Users/Macta/AppData/Local/Programs/cursor/resources/app/out/main.js:136:12821)
writeFromStateIncremental @ workbench.desktop.main.js:34361
workbench.desktop.main.js:43770 [Extension Host] rejected promise not handled within 1 second: Error: spawn zsh ENOENT
A2y @ workbench.desktop.main.js:43770
workbench.desktop.main.js:43770 [Extension Host] stack trace: Error: spawn zsh ENOENT
	at ChildProcess._handle.onexit (node:internal/child_process:285:19)
	at onErrorNT (node:internal/child_process:483:16)
	at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
A2y @ workbench.desktop.main.js:43770
workbench.desktop.main.js:64   ERR An unknown error occurred. Please consult the log for more details. Object
error @ workbench.desktop.main.js:64
workbench.desktop.main.js:34361 [TranscriptStore] Failed to append transcript, falling back to full write: Error: ENOENT: no such file or directory, open 'C:\home\wheeltec\.cursor\projects\home-wheeltec-wheeltec-ros2\agent-transcripts\af7d287c-d422-48ff-890a-e6906e5634cd\af7d287c-d422-48ff-890a-e6906e5634cd.jsonl'
    at async open (node:internal/fs/promises:636:25)
    at async writeFile (node:internal/fs/promises:1205:14)
    at async Xp.appendFile (file:///C:/Users/Macta/AppData/Local/Programs/cursor/resources/app/out/main.js:136:12821)
writeFromStateIncremental @ workbench.desktop.main.js:34361
workbench.desktop.main.js:64   ERR [Extension Host] [otel.error] {"stack":"OTLPExporterError: Bad Request\n\tat IncomingMessage.<anonymous> (/home/wheeltec/.cursor-server/cli/servers/Stable-fea2f546c979a0a4ad1deab23552a43568807590/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-transport-utils.js:52:31)\n\tat IncomingMessage.emit (node:events:530:35)\n\tat endReadableNT (node:internal/streams/readable:1698:12)\n\tat process.processTicksAndRejections (node:internal/process/task_queues:82:21)","message":"Bad Request","code":"400","name":"OTLPExporterError","data":"{\"error\":\"Trace spans collection is disabled for NO_STORAGE privacy mode\"}"}
error @ workbench.desktop.main.js:64
workbench.desktop.main.js:43770 [Extension Host] [otel.error] {"stack":"OTLPExporterError: Bad Request\n\tat IncomingMessage.<anonymous> (/home/wheeltec/.cursor-server/cli/servers/Stable-fea2f546c979a0a4ad1deab23552a43568807590/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-transport-utils.js:52:31)\n\tat IncomingMessage.emit (node:events:530:35)\n\tat endReadableNT (node:internal/streams/readable:1698:12)\n\tat process.processTicksAndRejections (node:internal/process/task_queues:82:21)","message":"Bad Request","code":"400","name":"OTLPExporterError","data":"{\"error\":\"Trace spans collection is disabled for NO_STORAGE privacy mode\"}"}
A2y @ workbench.desktop.main.js:43770
workbench.desktop.main.js:46702 [composer] No first token received within 2s {arch: 'x64', platform: 'win32', channel: 'stable', client_version: '2.6.21', requestId: '558e2e20-2992-4939-984c-6f6bcbcb588d', …}
_log @ workbench.desktop.main.js:46702
warn @ workbench.desktop.main.js:46702
(anonymous) @ workbench.desktop.main.js:34328
setTimeout
e.setTimeout @ workbench.desktop.main.js:46093
(anonymous) @ workbench.desktop.main.js:34328
submitChatMaybeAbortCurrent @ workbench.desktop.main.js:34328
await in submitChatMaybeAbortCurrent
Ea @ workbench.desktop.main.js:45813
await in Ea
onSubmit @ workbench.desktop.main.js:45813
I @ workbench.desktop.main.js:45785
onSubmit @ workbench.desktop.main.js:45785
handleSubmit @ workbench.desktop.main.js:43741
(anonymous) @ workbench.desktop.main.js:43743
s7h @ workbench.desktop.main.js:452
(anonymous) @ workbench.desktop.main.js:452
a7h @ workbench.desktop.main.js:452
lhe @ workbench.desktop.main.js:452
update @ workbench.desktop.main.js:454
s7h @ workbench.desktop.main.js:452
Fd @ workbench.desktop.main.js:452
PfA @ workbench.desktop.main.js:452
(anonymous) @ workbench.desktop.main.js:452
workbench.desktop.main.js:46702 [composer] No first token received within 4s {arch: 'x64', platform: 'win32', channel: 'stable', client_version: '2.6.21', requestId: '558e2e20-2992-4939-984c-6f6bcbcb588d', …}
_log @ workbench.desktop.main.js:46702
warn @ workbench.desktop.main.js:46702
(anonymous) @ workbench.desktop.main.js:34328
setTimeout
e.setTimeout @ workbench.desktop.main.js:46093
(anonymous) @ workbench.desktop.main.js:34328
submitChatMaybeAbortCurrent @ workbench.desktop.main.js:34328
await in submitChatMaybeAbortCurrent
Ea @ workbench.desktop.main.js:45813
await in Ea
onSubmit @ workbench.desktop.main.js:45813
I @ workbench.desktop.main.js:45785
onSubmit @ workbench.desktop.main.js:45785
handleSubmit @ workbench.desktop.main.js:43741
(anonymous) @ workbench.desktop.main.js:43743
s7h @ workbench.desktop.main.js:452
(anonymous) @ workbench.desktop.main.js:452
a7h @ workbench.desktop.main.js:452
lhe @ workbench.desktop.main.js:452
update @ workbench.desktop.main.js:454
s7h @ workbench.desktop.main.js:452
Fd @ workbench.desktop.main.js:452
PfA @ workbench.desktop.main.js:452
(anonymous) @ workbench.desktop.main.js:452
workbench.desktop.main.js:34259 [PluginsProviderService] getPluginMcpServers took 1156.9ms
_callWithTimeout @ workbench.desktop.main.js:34259
await in _callWithTimeout
getPluginMcpServers @ workbench.desktop.main.js:34259
refreshPluginServers @ workbench.desktop.main.js:34295
re @ workbench.desktop.main.js:34295
_deliver @ workbench.desktop.main.js:55
_deliverQueue @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
notifyPluginsChanged @ workbench.desktop.main.js:34259
$notifyPluginsChanged @ workbench.desktop.main.js:43805
_doInvokeHandler @ workbench.desktop.main.js:46642
_invokeHandler @ workbench.desktop.main.js:46642
_receiveRequest @ workbench.desktop.main.js:46642
_receiveOneMessage @ workbench.desktop.main.js:46642
(anonymous) @ workbench.desktop.main.js:46642
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:43787
_receiveMessage @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:43787
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
acceptChunk @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:43787
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
(anonymous) @ workbench.desktop.main.js:43792
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
$onDidManagedSocketHaveData @ workbench.desktop.main.js:43792
_doInvokeHandler @ workbench.desktop.main.js:46642
_invokeHandler @ workbench.desktop.main.js:46642
_receiveRequest @ workbench.desktop.main.js:46642
_receiveOneMessage @ workbench.desktop.main.js:46642
(anonymous) @ workbench.desktop.main.js:46642
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:49778
workbench.desktop.main.js:34259 [PluginsProviderService] getPluginCommands took 1155.5ms
_callWithTimeout @ workbench.desktop.main.js:34259
await in _callWithTimeout
getPluginCommands @ workbench.desktop.main.js:34259
loadPluginCommands @ workbench.desktop.main.js:49779
loadAllCommands @ workbench.desktop.main.js:49779
await in loadAllCommands
refresh @ workbench.desktop.main.js:49779
(anonymous) @ workbench.desktop.main.js:49779
_deliver @ workbench.desktop.main.js:55
_deliverQueue @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
notifyPluginsChanged @ workbench.desktop.main.js:34259
$notifyPluginsChanged @ workbench.desktop.main.js:43805
_doInvokeHandler @ workbench.desktop.main.js:46642
_invokeHandler @ workbench.desktop.main.js:46642
_receiveRequest @ workbench.desktop.main.js:46642
_receiveOneMessage @ workbench.desktop.main.js:46642
(anonymous) @ workbench.desktop.main.js:46642
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:43787
_receiveMessage @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:43787
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
acceptChunk @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:43787
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
(anonymous) @ workbench.desktop.main.js:43792
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
$onDidManagedSocketHaveData @ workbench.desktop.main.js:43792
_doInvokeHandler @ workbench.desktop.main.js:46642
_invokeHandler @ workbench.desktop.main.js:46642
_receiveRequest @ workbench.desktop.main.js:46642
_receiveOneMessage @ workbench.desktop.main.js:46642
(anonymous) @ workbench.desktop.main.js:46642
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:49778
workbench.desktop.main.js:34259 [PluginsProviderService] getPluginHooks took 1055.0ms
_callWithTimeout @ workbench.desktop.main.js:34259
await in _callWithTimeout
getPluginHooks @ workbench.desktop.main.js:34259
loadPluginHooks @ workbench.desktop.main.js:47054
reloadHooks @ workbench.desktop.main.js:47054
await in reloadHooks
(anonymous) @ workbench.desktop.main.js:47054
_deliver @ workbench.desktop.main.js:55
_deliverQueue @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
notifyPluginsChanged @ workbench.desktop.main.js:34259
$notifyPluginsChanged @ workbench.desktop.main.js:43805
_doInvokeHandler @ workbench.desktop.main.js:46642
_invokeHandler @ workbench.desktop.main.js:46642
_receiveRequest @ workbench.desktop.main.js:46642
_receiveOneMessage @ workbench.desktop.main.js:46642
(anonymous) @ workbench.desktop.main.js:46642
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:43787
_receiveMessage @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:43787
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
acceptChunk @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:43787
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
(anonymous) @ workbench.desktop.main.js:43792
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
$onDidManagedSocketHaveData @ workbench.desktop.main.js:43792
_doInvokeHandler @ workbench.desktop.main.js:46642
_invokeHandler @ workbench.desktop.main.js:46642
_receiveRequest @ workbench.desktop.main.js:46642
_receiveOneMessage @ workbench.desktop.main.js:46642
(anonymous) @ workbench.desktop.main.js:46642
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:49778
workbench.desktop.main.js:46702 [composer] No first token received within 6s {arch: 'x64', platform: 'win32', channel: 'stable', client_version: '2.6.21', requestId: '558e2e20-2992-4939-984c-6f6bcbcb588d', …}
_log @ workbench.desktop.main.js:46702
warn @ workbench.desktop.main.js:46702
(anonymous) @ workbench.desktop.main.js:34328
setTimeout
e.setTimeout @ workbench.desktop.main.js:46093
(anonymous) @ workbench.desktop.main.js:34328
submitChatMaybeAbortCurrent @ workbench.desktop.main.js:34328
await in submitChatMaybeAbortCurrent
Ea @ workbench.desktop.main.js:45813
await in Ea
onSubmit @ workbench.desktop.main.js:45813
I @ workbench.desktop.main.js:45785
onSubmit @ workbench.desktop.main.js:45785
handleSubmit @ workbench.desktop.main.js:43741
(anonymous) @ workbench.desktop.main.js:43743
s7h @ workbench.desktop.main.js:452
(anonymous) @ workbench.desktop.main.js:452
a7h @ workbench.desktop.main.js:452
lhe @ workbench.desktop.main.js:452
update @ workbench.desktop.main.js:454
s7h @ workbench.desktop.main.js:452
Fd @ workbench.desktop.main.js:452
PfA @ workbench.desktop.main.js:452
(anonymous) @ workbench.desktop.main.js:452
workbench.desktop.main.js:46702 [composer] No first token received within 8s {arch: 'x64', platform: 'win32', channel: 'stable', client_version: '2.6.21', requestId: '558e2e20-2992-4939-984c-6f6bcbcb588d', …}
_log @ workbench.desktop.main.js:46702
warn @ workbench.desktop.main.js:46702
(anonymous) @ workbench.desktop.main.js:34328
setTimeout
e.setTimeout @ workbench.desktop.main.js:46093
(anonymous) @ workbench.desktop.main.js:34328
submitChatMaybeAbortCurrent @ workbench.desktop.main.js:34328
await in submitChatMaybeAbortCurrent
Ea @ workbench.desktop.main.js:45813
await in Ea
onSubmit @ workbench.desktop.main.js:45813
I @ workbench.desktop.main.js:45785
onSubmit @ workbench.desktop.main.js:45785
handleSubmit @ workbench.desktop.main.js:43741
(anonymous) @ workbench.desktop.main.js:43743
s7h @ workbench.desktop.main.js:452
(anonymous) @ workbench.desktop.main.js:452
a7h @ workbench.desktop.main.js:452
lhe @ workbench.desktop.main.js:452
update @ workbench.desktop.main.js:454
s7h @ workbench.desktop.main.js:452
Fd @ workbench.desktop.main.js:452
PfA @ workbench.desktop.main.js:452
(anonymous) @ workbench.desktop.main.js:452
workbench.desktop.main.js:46702 [composer] No first token received within 10s {arch: 'x64', platform: 'win32', channel: 'stable', client_version: '2.6.21', requestId: '558e2e20-2992-4939-984c-6f6bcbcb588d', …}
_log @ workbench.desktop.main.js:46702
warn @ workbench.desktop.main.js:46702
(anonymous) @ workbench.desktop.main.js:34328
setTimeout
e.setTimeout @ workbench.desktop.main.js:46093
(anonymous) @ workbench.desktop.main.js:34328
submitChatMaybeAbortCurrent @ workbench.desktop.main.js:34328
await in submitChatMaybeAbortCurrent
Ea @ workbench.desktop.main.js:45813
await in Ea
onSubmit @ workbench.desktop.main.js:45813
I @ workbench.desktop.main.js:45785
onSubmit @ workbench.desktop.main.js:45785
handleSubmit @ workbench.desktop.main.js:43741
(anonymous) @ workbench.desktop.main.js:43743
s7h @ workbench.desktop.main.js:452
(anonymous) @ workbench.desktop.main.js:452
a7h @ workbench.desktop.main.js:452
lhe @ workbench.desktop.main.js:452
update @ workbench.desktop.main.js:454
s7h @ workbench.desktop.main.js:452
Fd @ workbench.desktop.main.js:452
PfA @ workbench.desktop.main.js:452
(anonymous) @ workbench.desktop.main.js:452
workbench.desktop.main.js:46702 [composer] No first token received within 12s {arch: 'x64', platform: 'win32', channel: 'stable', client_version: '2.6.21', requestId: '558e2e20-2992-4939-984c-6f6bcbcb588d', …}
_log @ workbench.desktop.main.js:46702
warn @ workbench.desktop.main.js:46702
(anonymous) @ workbench.desktop.main.js:34328
setTimeout
e.setTimeout @ workbench.desktop.main.js:46093
(anonymous) @ workbench.desktop.main.js:34328
submitChatMaybeAbortCurrent @ workbench.desktop.main.js:34328
await in submitChatMaybeAbortCurrent
Ea @ workbench.desktop.main.js:45813
await in Ea
onSubmit @ workbench.desktop.main.js:45813
I @ workbench.desktop.main.js:45785
onSubmit @ workbench.desktop.main.js:45785
handleSubmit @ workbench.desktop.main.js:43741
(anonymous) @ workbench.desktop.main.js:43743
s7h @ workbench.desktop.main.js:452
(anonymous) @ workbench.desktop.main.js:452
a7h @ workbench.desktop.main.js:452
lhe @ workbench.desktop.main.js:452
update @ workbench.desktop.main.js:454
s7h @ workbench.desktop.main.js:452
Fd @ workbench.desktop.main.js:452
PfA @ workbench.desktop.main.js:452
(anonymous) @ workbench.desktop.main.js:452
workbench.desktop.main.js:46702 [composer] No first token received within 14s {arch: 'x64', platform: 'win32', channel: 'stable', client_version: '2.6.21', requestId: '558e2e20-2992-4939-984c-6f6bcbcb588d', …}
_log @ workbench.desktop.main.js:46702
warn @ workbench.desktop.main.js:46702
(anonymous) @ workbench.desktop.main.js:34328
setTimeout
e.setTimeout @ workbench.desktop.main.js:46093
(anonymous) @ workbench.desktop.main.js:34328
submitChatMaybeAbortCurrent @ workbench.desktop.main.js:34328
await in submitChatMaybeAbortCurrent
Ea @ workbench.desktop.main.js:45813
await in Ea
onSubmit @ workbench.desktop.main.js:45813
I @ workbench.desktop.main.js:45785
onSubmit @ workbench.desktop.main.js:45785
handleSubmit @ workbench.desktop.main.js:43741
(anonymous) @ workbench.desktop.main.js:43743
s7h @ workbench.desktop.main.js:452
(anonymous) @ workbench.desktop.main.js:452
a7h @ workbench.desktop.main.js:452
lhe @ workbench.desktop.main.js:452
update @ workbench.desktop.main.js:454
s7h @ workbench.desktop.main.js:452
Fd @ workbench.desktop.main.js:452
PfA @ workbench.desktop.main.js:452
(anonymous) @ workbench.desktop.main.js:452
workbench.desktop.main.js:46702 [composer] No first token received within 16s {arch: 'x64', platform: 'win32', channel: 'stable', client_version: '2.6.21', requestId: '558e2e20-2992-4939-984c-6f6bcbcb588d', …}
_log @ workbench.desktop.main.js:46702
warn @ workbench.desktop.main.js:46702
(anonymous) @ workbench.desktop.main.js:34328
setTimeout
e.setTimeout @ workbench.desktop.main.js:46093
(anonymous) @ workbench.desktop.main.js:34328
submitChatMaybeAbortCurrent @ workbench.desktop.main.js:34328
await in submitChatMaybeAbortCurrent
Ea @ workbench.desktop.main.js:45813
await in Ea
onSubmit @ workbench.desktop.main.js:45813
I @ workbench.desktop.main.js:45785
onSubmit @ workbench.desktop.main.js:45785
handleSubmit @ workbench.desktop.main.js:43741
(anonymous) @ workbench.desktop.main.js:43743
s7h @ workbench.desktop.main.js:452
(anonymous) @ workbench.desktop.main.js:452
a7h @ workbench.desktop.main.js:452
lhe @ workbench.desktop.main.js:452
update @ workbench.desktop.main.js:454
s7h @ workbench.desktop.main.js:452
Fd @ workbench.desktop.main.js:452
PfA @ workbench.desktop.main.js:452
(anonymous) @ workbench.desktop.main.js:452
workbench.desktop.main.js:43770 [Extension Host] rejected promise not handled within 1 second: Error: spawn zsh ENOENT
A2y @ workbench.desktop.main.js:43770
$logExtensionHostMessage @ workbench.desktop.main.js:43770
_doInvokeHandler @ workbench.desktop.main.js:46642
_invokeHandler @ workbench.desktop.main.js:46642
_receiveRequest @ workbench.desktop.main.js:46642
_receiveOneMessage @ workbench.desktop.main.js:46642
(anonymous) @ workbench.desktop.main.js:46642
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:43787
_receiveMessage @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:43787
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
acceptChunk @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:43787
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
(anonymous) @ workbench.desktop.main.js:43792
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
$onDidManagedSocketHaveData @ workbench.desktop.main.js:43792
_doInvokeHandler @ workbench.desktop.main.js:46642
_invokeHandler @ workbench.desktop.main.js:46642
_receiveRequest @ workbench.desktop.main.js:46642
_receiveOneMessage @ workbench.desktop.main.js:46642
(anonymous) @ workbench.desktop.main.js:46642
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:49778
workbench.desktop.main.js:43770 [Extension Host] stack trace: Error: spawn zsh ENOENT
	at ChildProcess._handle.onexit (node:internal/child_process:285:19)
	at onErrorNT (node:internal/child_process:483:16)
	at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
A2y @ workbench.desktop.main.js:43770
$logExtensionHostMessage @ workbench.desktop.main.js:43770
_doInvokeHandler @ workbench.desktop.main.js:46642
_invokeHandler @ workbench.desktop.main.js:46642
_receiveRequest @ workbench.desktop.main.js:46642
_receiveOneMessage @ workbench.desktop.main.js:46642
(anonymous) @ workbench.desktop.main.js:46642
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:43787
_receiveMessage @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:43787
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
acceptChunk @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:43787
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
(anonymous) @ workbench.desktop.main.js:43792
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
$onDidManagedSocketHaveData @ workbench.desktop.main.js:43792
_doInvokeHandler @ workbench.desktop.main.js:46642
_invokeHandler @ workbench.desktop.main.js:46642
_receiveRequest @ workbench.desktop.main.js:46642
_receiveOneMessage @ workbench.desktop.main.js:46642
(anonymous) @ workbench.desktop.main.js:46642
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:49778
workbench.desktop.main.js:64   ERR An unknown error occurred. Please consult the log for more details. {errno: -2, code: 'ENOENT', syscall: 'spawn zsh', path: 'zsh', spawnargs: Array(2)}
error @ workbench.desktop.main.js:64
error @ workbench.desktop.main.js:64
error @ workbench.desktop.main.js:48679
handleUnexpectedError @ workbench.desktop.main.js:48676
(anonymous) @ workbench.desktop.main.js:48676
onUnexpectedError @ workbench.desktop.main.js:33
Wc @ workbench.desktop.main.js:28
$onUnexpectedError @ workbench.desktop.main.js:43784
_doInvokeHandler @ workbench.desktop.main.js:46642
_invokeHandler @ workbench.desktop.main.js:46642
_receiveRequest @ workbench.desktop.main.js:46642
_receiveOneMessage @ workbench.desktop.main.js:46642
(anonymous) @ workbench.desktop.main.js:46642
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:43787
_receiveMessage @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:43787
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
acceptChunk @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:43787
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
(anonymous) @ workbench.desktop.main.js:43792
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
$onDidManagedSocketHaveData @ workbench.desktop.main.js:43792
_doInvokeHandler @ workbench.desktop.main.js:46642
_invokeHandler @ workbench.desktop.main.js:46642
_receiveRequest @ workbench.desktop.main.js:46642
_receiveOneMessage @ workbench.desktop.main.js:46642
(anonymous) @ workbench.desktop.main.js:46642
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:49778
workbench.desktop.main.js:34361 [TranscriptStore] Failed to append transcript, falling back to full write: Error: ENOENT: no such file or directory, open 'C:\home\wheeltec\.cursor\projects\home-wheeltec-wheeltec-ros2\agent-transcripts\af7d287c-d422-48ff-890a-e6906e5634cd\af7d287c-d422-48ff-890a-e6906e5634cd.jsonl'
    at async open (node:internal/fs/promises:636:25)
    at async writeFile (node:internal/fs/promises:1205:14)
    at async Xp.appendFile (file:///C:/Users/Macta/AppData/Local/Programs/cursor/resources/app/out/main.js:136:12821)
writeFromStateIncremental @ workbench.desktop.main.js:34361
await in writeFromStateIncremental
(anonymous) @ workbench.desktop.main.js:46834
await in (anonymous)
flushWrite @ workbench.desktop.main.js:46834
(anonymous) @ workbench.desktop.main.js:46834
(anonymous) @ workbench.desktop.main.js:59
Promise.then
trigger @ workbench.desktop.main.js:59
handleCheckpoint @ workbench.desktop.main.js:46834
handleCheckpoint @ workbench.desktop.main.js:34268
run @ workbench.desktop.main.js:34263
workbench.desktop.main.js:64   ERR [Extension Host] [otel.error] {"stack":"OTLPExporterError: Bad Request\n\tat IncomingMessage.<anonymous> (/home/wheeltec/.cursor-server/cli/servers/Stable-fea2f546c979a0a4ad1deab23552a43568807590/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-transport-utils.js:52:31)\n\tat IncomingMessage.emit (node:events:530:35)\n\tat endReadableNT (node:internal/streams/readable:1698:12)\n\tat process.processTicksAndRejections (node:internal/process/task_queues:82:21)","message":"Bad Request","code":"400","name":"OTLPExporterError","data":"{\"error\":\"Trace spans collection is disabled for NO_STORAGE privacy mode\"}"}
error @ workbench.desktop.main.js:64
error @ workbench.desktop.main.js:64
error @ workbench.desktop.main.js:48679
w2y @ workbench.desktop.main.js:43770
$logExtensionHostMessage @ workbench.desktop.main.js:43770
_doInvokeHandler @ workbench.desktop.main.js:46642
_invokeHandler @ workbench.desktop.main.js:46642
_receiveRequest @ workbench.desktop.main.js:46642
_receiveOneMessage @ workbench.desktop.main.js:46642
(anonymous) @ workbench.desktop.main.js:46642
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:43787
_receiveMessage @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:43787
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
acceptChunk @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:43787
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
(anonymous) @ workbench.desktop.main.js:43792
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
$onDidManagedSocketHaveData @ workbench.desktop.main.js:43792
_doInvokeHandler @ workbench.desktop.main.js:46642
_invokeHandler @ workbench.desktop.main.js:46642
_receiveRequest @ workbench.desktop.main.js:46642
_receiveOneMessage @ workbench.desktop.main.js:46642
(anonymous) @ workbench.desktop.main.js:46642
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:49778
workbench.desktop.main.js:43770 [Extension Host] [otel.error] {"stack":"OTLPExporterError: Bad Request\n\tat IncomingMessage.<anonymous> (/home/wheeltec/.cursor-server/cli/servers/Stable-fea2f546c979a0a4ad1deab23552a43568807590/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-transport-utils.js:52:31)\n\tat IncomingMessage.emit (node:events:530:35)\n\tat endReadableNT (node:internal/streams/readable:1698:12)\n\tat process.processTicksAndRejections (node:internal/process/task_queues:82:21)","message":"Bad Request","code":"400","name":"OTLPExporterError","data":"{\"error\":\"Trace spans collection is disabled for NO_STORAGE privacy mode\"}"}
A2y @ workbench.desktop.main.js:43770
$logExtensionHostMessage @ workbench.desktop.main.js:43770
_doInvokeHandler @ workbench.desktop.main.js:46642
_invokeHandler @ workbench.desktop.main.js:46642
_receiveRequest @ workbench.desktop.main.js:46642
_receiveOneMessage @ workbench.desktop.main.js:46642
(anonymous) @ workbench.desktop.main.js:46642
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:43787
_receiveMessage @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:43787
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
acceptChunk @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:43787
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
(anonymous) @ workbench.desktop.main.js:43792
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
$onDidManagedSocketHaveData @ workbench.desktop.main.js:43792
_doInvokeHandler @ workbench.desktop.main.js:46642
_invokeHandler @ workbench.desktop.main.js:46642
_receiveRequest @ workbench.desktop.main.js:46642
_receiveOneMessage @ workbench.desktop.main.js:46642
(anonymous) @ workbench.desktop.main.js:46642
_deliver @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:55
fire @ workbench.desktop.main.js:43787
(anonymous) @ workbench.desktop.main.js:49778
workbench.desktop.main.js:34361 [TranscriptStore] Failed to append transcript, falling back to full write: Error: ENOENT: no such file or directory, open 'C:\home\wheeltec\.cursor\projects\home-wheeltec-wheeltec-ros2\agent-transcripts\af7d287c-d422-48ff-890a-e6906e5634cd\af7d287c-d422-48ff-890a-e6906e5634cd.jsonl'
    at async open (node:internal/fs/promises:636:25)
    at async writeFile (node:internal/fs/promises:1205:14)
    at async Xp.appendFile (file:///C:/Users/Macta/AppData/Local/Programs/cursor/resources/app/out/main.js:136:12821)

Hey, thanks for the logs, they’re very helpful. The update fixed the original hang, but now there’s a different issue. Cursor is trying to use zsh as the shell on your Raspberry Pi, but zsh isn’t installed there. That’s what the spawn zsh ENOENT errors mean.

The fix:

  • Open Settings with Ctrl+,
  • Important: in the top-right dropdown, switch the scope to Remote SSH your-host, not Local or User
  • Search for terminal.integrated.defaultProfile.linux
  • Set it to bash

After that:

  • On the Raspberry Pi, kill the cursor-server:
    ps aux | grep cursor | grep -v grep | awk '{print $2}' | xargs kill -9
    
  • Fully quit and reopen Cursor, then reconnect

This is a known issue where Cursor carries the local shell preference to the remote machine. There’s a related thread with the same root cause: Terminal commands stuck/failed on Remote SSH with ENOENT spawn zsh error

Let me know if that resolves it.