Cursor 2.4.37: WSL projects stuck on “Waiting for Extension Host” + cannot rollback because Cursor auto-updates even with Update Mode none/manual

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

In Cursor 2.4.37 on Windows, Agent chat works normally for local Windows projects, but when I open/connect to a WSL project, Agent chat becomes unusable and continuously shows “Waiting for Extension Host” (never resolves). Reloading Window didn’t solve the problem, either.

I tried installing an older Cursor version, and the WSL Agent chat issue does not happen there, so this appears to be a regression in 2.4.37.

However, I cannot stay on the older version because Cursor auto-updates back to 2.4.37 after I close and reopen Cursor (or even after Windows restart). This happens even when I set:

update.mode to none or manual (no effect)

So I currently have:

A regression in 2.4.37 affecting WSL extension host / Agent chat

An inability to rollback because the app forces an automatic update regardless of update settings

Steps to Reproduce

Issue A: WSL project stuck on “Waiting for Extension Host”

  1. Install Cursor 2.4.37 on Windows 10/11

  2. Open a local Windows project → Agent chat works normally

  3. Open/connect to a WSL project (Remote/WSL workspace)

  4. Try to send a message to Agent

  5. Observe it stays on “Waiting for Extension Host” indefinitely and cannot chat

Issue B: Cannot rollback (auto-update overrides settings)

  1. Uninstall Cursor 2.4.37

  2. Install an older Cursor version (where Issue A does not occur)

  3. In Settings, set Update Mode to none (also tried manual)

  4. Close Cursor completely

  5. Reopen Cursor (or restart Windows)

  6. Observe Cursor has auto-updated back to 2.4.37 without asking

Expected Behavior

In Cursor 2.4.37, Agent chat should work in WSL projects the same as it does in local Windows projects (no “Waiting for Extension Host” loop).

When Update Mode is set to none or manual, Cursor should not auto-update on restart, and rollback to an older version should remain stable.

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

Does this stop you from using Cursor

Yes - Cursor is unusable

1 Like

Hey, thanks for the report. Two things here:

About the WSL extension host issue:

This is a known “Agent Execution Timed Out” error. The team is aware and looking into it. What’s interesting about your case is that it only happens in WSL, while it works locally. Can you try a few things:

  1. Fully close Cursor, delete this file (make a backup first) C:\Users\[username]\AppData\Roaming\Cursor\User\globalStorage\state.vscdb, then restart Cursor
  2. Make sure Git is installed inside WSL (git --version in the WSL terminal)
  3. Try enabling Early Access (Cursor Settings > Beta > Early Access). Sometimes it’s already fixed in a newer build

About auto-updates:

Yeah, that’s pretty annoying. The update.mode setting sadly doesn’t always work correctly on Windows to prevent auto-updates. I’ll pass this feedback to the team since it really blocks rolling back.

A couple questions: which WSL distro are you using (Ubuntu, Debian, etc.) and what’s your WSL version (wsl --version in PowerShell)?

Let me know if anything from the list helped.

What I tried

  1. Fully closed Cursor, deleted (after backup)
    C:\Users\[username]\AppData\Roaming\Cursor\User\globalStorage\state.vscdb
    then restarted Cursor.

  2. Confirmed Git is installed inside WSL:
    git --version2.43.0

  3. Enabled Early Access (Cursor Settings → Beta → Early Access).

Result
After doing the above, the Agent chat UI no longer loads properly. The chat panel stays stuck on “Loading chat” and the conversation window never appears.

Environment

  • WSL distro: Ubuntu-24.04

  • WSL version (PowerShell wsl --version): 2.5.10.0

I can see from the screenshot that the chat is stuck on “Loading chat”. Deleting state.vscdb didn’t seem to help, and it might’ve made things worse. Let’s try to recover and collect more diagnostics:

  • If you saved a backup of state.vscdb, restore it and restart Cursor. Let’s see if it at least goes back to the earlier symptom (“Waiting for Extension Host” instead of “Loading chat”).
  • After that, open your WSL project and collect logs:
    • Go to Help > Toggle Developer Tools > Console, then copy the errors (the red lines).
    • In the Output panel View > Output, select “Remote Extension Host (WSL)” and copy everything there.
  • Also try Ctrl+Shift+P > Developer: Restart Extension Host, then wait for it to restart. This sometimes helps in WSL.

Send the logs and we’ll take a look at what’s happening on the Extension Host side.

1) Restored state.vscdb + restarted Cursor

After restoring my backup of state.vscdb and restarting Cursor, Cursor immediately crashes / becomes unusable with a Storage Error dialog:

  • “Cursor was unable to open local storage. Please reload or contact support.”

  • It says this can happen if the storage file is corrupted/moved/permission issues.

  • Storage path shown:
    C:\Users\<username>\AppData\Roaming\Cursor\User\globalStorage\state.vscdb

After this happens, I can’t get back into the chat UI unless I uninstall Cursor and reinstall. Reinstalling is the only way I can see the chat window again.


2) Developer Tools Console errors (red lines)

From Help → Toggle Developer Tools → Console, I see these errors:

  • ERR Error received from starting extension host (kind: Remote)

  • ERR The remote extension host took longer than 60s to send its ready message.

  • ERR [Extension Host] (node:41516) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification.

(There are repeated stack traces pointing to workbench.desktop.main.js.)

The details are as follows:

ERR Error received from starting extension host (kind: Remote)
error @ workbench.desktop.main.js:58
error @ workbench.desktop.main.js:58
error @ workbench.desktop.main.js:36008
(anonymous) @ workbench.desktop.main.js:34002
workbench.desktop.main.js:58
ERR The remote extension host took longer than 60s to send its ready message.
error @ workbench.desktop.main.js:58
error @ workbench.desktop.main.js:58
error @ workbench.desktop.main.js:36008
(anonymous) @ workbench.desktop.main.js:34002

ERR [Extension Host] (node:41516) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to ‘0’ makes TLS connections and HTTPS requests insecure by disabling certificate verification.
(Use Cursor --trace-warnings ... to show where the warning was created)
error @ workbench.desktop.main.js:58
error @ workbench.desktop.main.js:58
error @ workbench.desktop.main.js:36008
BFf @ workbench.desktop.main.js:11408
$logExtensionHostMessage @ workbench.desktop.main.js:11408
_doInvokeHandler @ workbench.desktop.main.js:33998
_invokeHandler @ workbench.desktop.main.js:33998
_receiveRequest @ workbench.desktop.main.js:33998
_receiveOneMessage @ workbench.desktop.main.js:33998
(anonymous) @ workbench.desktop.main.js:33998
_deliver @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:11425
(anonymous) @ workbench.desktop.main.js:36059
workbench.desktop.main.js:11408

[Extension Host] (node:41516) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to ‘0’ makes TLS connections and HTTPS requests insecure by disabling certificate verification.
(Use Cursor --trace-warnings ... to show where the warning was created)
DFf @ workbench.desktop.main.js:11408
$logExtensionHostMessage @ workbench.desktop.main.js:11408
_doInvokeHandler @ workbench.desktop.main.js:33998
_invokeHandler @ workbench.desktop.main.js:33998
_receiveRequest @ workbench.desktop.main.js:33998
_receiveOneMessage @ workbench.desktop.main.js:33998
(anonymous) @ workbench.desktop.main.js:33998
_deliver @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:11425
(anonymous) @ workbench.desktop.main.js:36059


3) Output panel: cannot find “Remote Extension Host (WSL)”

In View → Output, I cannot find an entry named “Remote Extension Host (WSL)” in the Output dropdown, so I’m unable to copy logs from that channel. There is even no option named “Remote Extension Host”.


4) Developer: Restart Extension Host

When I run Ctrl+Shift+P → Developer: Restart Extension Host, it fails and shows:

  • “Unable to reconnect. Please reload the window.”

Hi team, I found something strange. The “Waiting for Extension Host” issue is not only happening with WSL. I also see the same message when connecting to other remote servers via SSH.

However, the behavior is different:

  • Remote-SSH: after connecting, it shows “Waiting for Extension Host” for a short time, but it recovers quickly and I can then chat with the Agent normally.

  • WSL: it gets stuck on “Waiting for Extension Host” and never recovers, so Agent chat remains unusable.

So it seems like the extension host startup/ready handshake works eventually for SSH remotes, but consistently times out / fails for WSL in my setup.

That SSH vs WSL note is really helpful. It narrows the issue down to the WSL extension host.

Try this:

  1. Delete Cursor server files inside WSL. In the WSL terminal:

    rm -rf ~/.cursor-server
    

    Then reconnect to the WSL project from Cursor. It should reinstall them.

  2. If that doesn’t help, start Cursor without extensions:

    cursor --disable-extensions
    

    Then connect to WSL.

  3. Check in WSL:

    echo $NODE_TLS_REJECT_UNAUTHORIZED
    

    If it prints 0, run unset NODE_TLS_REJECT_UNAUTHORIZED and try again.

  4. Before all attempts, fully restart WSL via PowerShell:

    wsl --shutdown
    

I’ll escalate the WSL extension host issue. Let me know how it goes with the steps above.

Hi team,

I found a major clue that seems directly related to the WSL “Waiting for Extension Host / Loading chat” problem:

When my Cursor UI language is set to Chinese (Simplified), connecting to a WSL project consistently gets stuck and I cannot chat with the Agent.

However, as soon as I switch the UI language back to English, the same WSL project works normally and I can chat with the Agent without issues.

So the WSL remote/extension host hang appears to be strongly correlated with having Chinese (Simplified) enabled as the display language. It would be great if you could investigate whether the Chinese language pack / localization path is affecting the WSL extension host startup or Agent initialization in 2.4.37.

Hi team,

I tried the steps you suggested. Here are the results:

  1. Reinstalled Cursor server inside WSL
  • I deleted the server directory in WSL and let Cursor reinstall it:

    • rm -rf ~/.cursor-server

    • Reconnected to the WSL project from Cursor → it reinstalled successfully.

  1. Checked NODE_TLS_REJECT_UNAUTHORIZED in WSL
  • Running echo $NODE_TLS_REJECT_UNAUTHORIZED prints nothing (empty output), so it does not appear to be set to 0 in my WSL environment.
  1. Key finding: the issue depends on the display language
  • If I set Configure Display Language to English, I can connect to the same WSL project and chat with the Agent normally.

  • If I set the display language to Chinese (Simplified), the WSL Agent chat fails again (stuck / cannot chat).

So at this point, the WSL extension host / Agent chat issue seems strongly correlated with using Chinese (Simplified) as the UI language (language pack / localization path), while English works reliably.

That’s a great diagnostic find. The link to the Chinese (Simplified) display language explains why the issue only reproduces in WSL and not for all users.

For now, switching to English is a working workaround. I’ve passed this to the team as a localization-related bug tied to the WSL extension host.

Let me know if anything else comes up.

This topic was automatically closed 22 days after the last reply. New replies are no longer allowed.