Write tool and Web search hanging indefinitely

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

The Write tool and Web search tool hang indefinitely with relatively small requests.

Steps to Reproduce

Request an agent to write a planning doc for example, or conduct a small research task on the web.

Expected Behavior

The request should complete usually in <30 seconds

Operating System

MacOS

Version Information

Version: 3.6.31 (Universal)
VS Code Extension API: 1.105.1
Commit: 81fcf2931d7687b4ff3f3017858d0c6dee7e2a60
Date: 2026-05-31T17:46:29.630Z
Layout: glass
Build Type: Stable
Release Track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
xterm.js: 6.1.0-beta.220
OS: Darwin arm64 25.2.0

For AI issues: which model did you use?

Any model, Auto, Opus etc

Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

Hey, thanks for the report. The symptom, hangs forever, usually fits the extension host or execution pipeline class of issues, but with the current description we can’t reproduce it. I’ll need a bit more detail:

  1. When the tool hangs, do you see any error text in the UI like “Execution backend unavailable” or “Agent Execution Timed Out”? Please share a screenshot of that state.
  2. Did this start after a specific update, or has it always been happening?
  3. Are you using Remote SSH or WSL, or is everything local?
  4. If you can catch it while it’s hanging, copy the Request ID: chat menu (top right) > Copy Request ID.

For now, you can also try:

  • Cursor Settings > Network > Run Diagnostics and check if there are any connectivity issues.
  • If you’re on a corporate network or using a VPN or proxy, enable App Settings Cmd+Shift+,, search for “HTTP/2”, disable HTTP/2, then restart.
  • Test without extensions: run cursor --disable-extensions from a terminal and see if it still hangs.

Let me know what you find. The error message and Request ID will make it much clearer where to dig next.

I am having the same issue.

Intel(R) Core™ Ultra 7 155H (1.40 GHz);
16.0 GB (15.6 GB usable);NVIDIA GeForce RTX 4060 Laptop GPU (8 GB)
Intel(R) Arc™ Graphics (128 MB);

Windows: 64-bit operating system, x64-based processor

Edition Windows 11 Home
Version 25H2
Installed on ‎27/‎04/‎2025
OS build 26200.8524
Serial number PF4ZWSXT
Experience Windows Feature Experience Pack 1000.26100.315.0

Error message after hanging

The agent execution provider did not respond in time. This may indicate the extension host is not running or is unresponsive. Request ID: 7b5d0b66-05e7-469b-81db-9789d15da97e

‘CopyID’ =

Request ID: 7b5d0b66-05e7-469b-81db-9789d15da97e
{“error”:“ERROR_EXTENSION_HOST_TIMEOUT”,“details”:{“title”:“Agent Execution Timed Out”,“detail”:“The agent execution provider did not respond in time. This may indicate the extension host is not running or is unresponsive.”,“isRetryable”:false,“shouldShowImmediateError”:true,“additionalInfo”:{},“buttons”:[{“label”:“Reload Window”,“reloadWindow”:{}}],“planChoices”:}}
The agent execution provider did not respond in time. This may indicate the extension host is not running or is unresponsive.
Agent Execution Timed Out [deadline_exceeded]
ConnectError: [deadline_exceeded] Agent Execution Timed Out
at ULw (vscode-file://vscode-app/c:/Users/heane/AppData/Local/Programs/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:44341:28583)
at VKd.waitForProviderRegistration (vscode-file://vscode-app/c:/Users/heane/AppData/Local/Programs/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:44341:33347)
at async _bf._waitForPushRequestContextProviderRegistration (vscode-file://vscode-app/c:/Users/heane/AppData/Local/Programs/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:47691:4084)
at async _bf.streamFromAgentBackend (vscode-file://vscode-app/c:/Users/heane/AppData/Local/Programs/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:47691:7354)
at async _bf.getAgentStreamResponse (vscode-file://vscode-app/c:/Users/heane/AppData/Local/Programs/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:47691:19276)
at async Zut.submitChatMaybeAbortCurrent (vscode-file://vscode-app/c:/Users/heane/AppData/Local/Programs/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:36407:17835)

Cursor Network Diagnostic Results

All Sucess (I’m a new user so not allowed to copy the logs across which contain links)

Hey, thanks for the details. The error text and the Request ID are exactly what we need.

ERROR_EXTENSION_HOST_TIMEOUT / Agent Execution Timed Out [deadline_exceeded] means the extension host isn’t responding in time, so tools like Write and Web search get stuck. Since Network Diagnostics passed, it’s not your network. It’s the extension host itself. This is a known issue and we’re tracking it.

What to try right now:

  1. Fully quit Cursor and reopen it. Don’t just close the window. Or click Reload Window in the error. This often brings a stuck host back.
  2. Run cursor --disable-extensions from a terminal and see if the hang still happens. If it works fine without extensions, then one of your extensions is causing the host to hang.
  3. Open Process Explorer via Ctrl+Shift+P then Developer: Open Process Explorer. When it hangs, check the extensionHost process and see if it’s stuck at 100% CPU.

I’ve increased the trust level on your account, please try uploading the logs.

Let me know if any of the steps help. I’m especially interested in the result with --disable-extensions.

Thanks - now this will seem embarrassing, but… I restarted and it’s fine now..

*Note : I didn’t just file a community note at the first instance, I spent a while trying to figure it out, closing everything out, ending processes, restarting laptop, etc… and it still felt extremely ‘stuck’…

But now, having restarted again, it now works fine. Previously, I had not ‘saved’ the logs on that diagnostic. Here are the diagnostic logs with and without disable-extensions.

With (default):

Cursor Network Diagnostic Results

DNS: Success
Logs:
[2026-06-03T14:30:00.897Z] Host: api2.cursor.sh
[2026-06-03T14:30:00.897Z] Servers: 127.0.0.1
[2026-06-03T14:30:00.897Z] Resolved to 3.212.159.129 in 15ms
[2026-06-03T14:30:00.951Z] Resolved to 3.212.159.129 in 15ms
[2026-06-03T14:30:00.986Z] Resolved to 3.212.159.129 in 1ms
[2026-06-03T14:30:00.998Z] Resolved to 3.212.159.129 in 6ms
[2026-06-03T14:30:01.068Z] Host: api2.cursor.sh
[2026-06-03T14:30:01.068Z] Servers: system
[2026-06-03T14:30:01.069Z] Resolved to 100.52.126.113, 98.83.186.138, 100.52.101.79, 44.207.99.173, 13.217.154.251, 32.198.136.22, 35.172.15.201, 3.213.234.217 in 47ms
[2026-06-03T14:30:01.098Z] Resolved to 100.52.126.113, 98.83.186.138, 100.52.101.79, 44.207.99.173, 13.217.154.251, 32.198.136.22, 35.172.15.201, 3.213.234.217 in 0ms
[2026-06-03T14:30:01.104Z] Resolved to 100.52.126.113, 98.83.186.138, 100.52.101.79, 44.207.99.173, 13.217.154.251, 32.198.136.22, 35.172.15.201, 3.213.234.217 in 1ms
[2026-06-03T14:30:01.110Z] Resolved to 100.52.126.113, 98.83.186.138, 100.52.101.79, 44.207.99.173, 13.217.154.251, 32.198.136.22, 35.172.15.201, 3.213.234.217 in 1ms
[2026-06-03T14:30:01.110Z] Result: true

HTTP/2: Success
Logs:
[2026-06-03T14:30:00.868Z] Start
[2026-06-03T14:30:01.076Z] Host: api2.cursor.sh
[2026-06-03T14:30:01.076Z] Protocol: h2
[2026-06-03T14:30:01.076Z] Result: true in 208ms

SSL: Success
Logs:
[2026-06-03T14:30:00.868Z] Start
[2026-06-03T14:30:01.183Z] URL: https://api2.cursor.sh/
[2026-06-03T14:30:01.183Z] Status: 200
[2026-06-03T14:30:01.183Z] IP: 3.212.159.129
[2026-06-03T14:30:01.183Z] Issuer: C=US; O=Amazon; CN=Amazon RSA 2048 M01
[2026-06-03T14:30:01.183Z] Name: api2.cursor.sh
[2026-06-03T14:30:01.183Z] AltName: DNS:api2.cursor.sh, DNS:prod.authentication.cursor.sh, DNS:*.api2.cursor.sh
[2026-06-03T14:30:01.183Z] DNS Time: 11ms
[2026-06-03T14:30:01.183Z] Connect Time: 91ms
[2026-06-03T14:30:01.183Z] TLS Time: 98ms
[2026-06-03T14:30:01.183Z] Result: true in 315ms

API: Success
Logs:
[2026-06-03T14:30:00.869Z] Start
[2026-06-03T14:30:01.317Z] Result: true

Ping: Success
Logs:
[2026-06-03T14:30:00.871Z] Sending ping 1
[2026-06-03T14:30:01.316Z] Response: ‘ping’ in 445ms
[2026-06-03T14:30:01.316Z] Sending ping 2
[2026-06-03T14:30:01.350Z] Response: ‘ping’ in 34ms
[2026-06-03T14:30:01.350Z] Sending ping 3
[2026-06-03T14:30:01.396Z] Response: ‘ping’ in 46ms
[2026-06-03T14:30:01.396Z] Sending ping 4
[2026-06-03T14:30:01.437Z] Response: ‘ping’ in 41ms
[2026-06-03T14:30:01.437Z] Sending ping 5
[2026-06-03T14:30:01.487Z] Response: ‘ping’ in 50ms
[2026-06-03T14:30:01.487Z] Result: true

Chat: Success
Logs:
[2026-06-03T14:30:00.872Z] Starting stream
[2026-06-03T14:30:01.343Z] Response: ‘foo’ in 469ms
[2026-06-03T14:30:02.408Z] Response: ‘foo’ in 1065ms
[2026-06-03T14:30:03.403Z] Response: ‘foo’ in 995ms
[2026-06-03T14:30:04.406Z] Response: ‘foo’ in 1003ms
[2026-06-03T14:30:05.403Z] Response: ‘foo’ in 997ms
[2026-06-03T14:30:06.428Z] Result: true

Agent: Success
Logs:
[2026-06-03T14:30:00.873Z] Starting stream
[2026-06-03T14:30:00.874Z] Pushing first message
[2026-06-03T14:30:01.359Z] Response: ‘foo’ in 485ms
[2026-06-03T14:30:01.871Z] Pushing next message
[2026-06-03T14:30:01.903Z] Response: ‘foo’ in 544ms
[2026-06-03T14:30:02.406Z] Pushing next message
[2026-06-03T14:30:02.437Z] Response: ‘foo’ in 534ms
[2026-06-03T14:30:02.938Z] Pushing next message
[2026-06-03T14:30:02.969Z] Response: ‘foo’ in 532ms
[2026-06-03T14:30:03.471Z] Pushing next message
[2026-06-03T14:30:03.907Z] Response: ‘foo’ in 938ms
[2026-06-03T14:30:03.907Z] Result: true

Marketplace: Success
Logs:
[2026-06-03T14:30:00.863Z] Host: marketplace.cursorapi.com
[2026-06-03T14:30:01.035Z] Response in 172ms
[2026-06-03T14:30:01.035Z] Response: 200
[2026-06-03T14:30:01.036Z] Response Type: cors
[2026-06-03T14:30:01.036Z] Server: null
[2026-06-03T14:30:01.036Z] Result: OK in 173ms

Authentication: Success
Logs:
[2026-06-03T14:30:00.864Z] Host: prod.authentication.cursor.sh
[2026-06-03T14:30:01.159Z] Response: 200 in 295ms

Authentication UI: Success
Logs:
[2026-06-03T14:30:00.868Z] DNS lookup: authenticator.cursor.sh
[2026-06-03T14:30:00.923Z] Resolved authenticator.cursor.sh to 172.64.152.23 in 24ms

Cursor Tab: Success
Logs:
[2026-06-03T14:30:00.868Z] DNS lookup: api3.cursor.sh
[2026-06-03T14:30:00.897Z] Resolved api3.cursor.sh to 104.18.19.125 in 9ms

Agent Endpoint: Success
Logs:
[2026-06-03T14:30:00.868Z] DNS lookup: agent.api5.cursor.sh
[2026-06-03T14:30:00.949Z] Resolved agent.api5.cursor.sh to 100.30.166.181 in 29ms

Codebase Indexing: Success
Logs:
[2026-06-03T14:30:00.868Z] DNS lookup: repo42.cursor.sh
[2026-06-03T14:30:00.951Z] Resolved repo42.cursor.sh to 32.195.116.17 in 32ms

Downloads: Success
Logs:
[2026-06-03T14:30:00.866Z] Host: downloads.cursor.com
[2026-06-03T14:30:01.219Z] Response: 403 in 353ms

CDN: Success
Logs:
[2026-06-03T14:30:00.868Z] Host: cursor-cdn.com
[2026-06-03T14:30:01.202Z] Response: 404 in 334ms

***************

***************

***************

disable extensions toggled on.

Cursor Network Diagnostic Results

FAILED (2): Chat, Agent

DNS: Success
Logs:
[2026-06-03T14:33:57.396Z] Host: api2.cursor.sh
[2026-06-03T14:33:57.396Z] Servers: 127.0.0.1
[2026-06-03T14:33:57.396Z] Resolved to 54.211.9.20 in 699ms
[2026-06-03T14:33:57.838Z] Resolved to 54.211.9.20 in 26ms
[2026-06-03T14:33:58.094Z] Resolved to 54.211.9.20 in 14ms
[2026-06-03T14:33:58.149Z] Resolved to 54.211.9.20 in 53ms
[2026-06-03T14:33:58.282Z] Host: api2.cursor.sh
[2026-06-03T14:33:58.282Z] Servers: system
[2026-06-03T14:33:58.282Z] Resolved to 32.199.134.82, 3.213.234.217, 98.83.53.152, 3.224.226.247, 32.197.158.221, 107.23.129.242, 44.214.164.147, 54.198.196.99 in 130ms
[2026-06-03T14:33:58.286Z] Resolved to 32.199.134.82, 3.213.234.217, 98.83.53.152, 3.224.226.247, 32.197.158.221, 107.23.129.242, 44.214.164.147, 54.198.196.99 in 0ms
[2026-06-03T14:33:58.293Z] Resolved to 32.199.134.82, 3.213.234.217, 98.83.53.152, 3.224.226.247, 32.197.158.221, 107.23.129.242, 44.214.164.147, 54.198.196.99 in 1ms
[2026-06-03T14:33:58.296Z] Resolved to 32.199.134.82, 3.213.234.217, 98.83.53.152, 3.224.226.247, 32.197.158.221, 107.23.129.242, 44.214.164.147, 54.198.196.99 in 1ms
[2026-06-03T14:33:58.296Z] Result: true

HTTP/2: Success
Logs:
[2026-06-03T14:33:56.673Z] Start
[2026-06-03T14:33:58.071Z] Host: api2.cursor.sh
[2026-06-03T14:33:58.071Z] Protocol: h2
[2026-06-03T14:33:58.071Z] Result: true in 1398ms

SSL: Success
Logs:
[2026-06-03T14:33:56.673Z] Start
[2026-06-03T14:33:58.164Z] URL: https://api2.cursor.sh/
[2026-06-03T14:33:58.164Z] Status: 200
[2026-06-03T14:33:58.164Z] IP: 54.211.9.20
[2026-06-03T14:33:58.164Z] Issuer: C=US; O=Amazon; CN=Amazon RSA 2048 M01
[2026-06-03T14:33:58.164Z] Name: api2.cursor.sh
[2026-06-03T14:33:58.164Z] AltName: DNS:api2.cursor.sh, DNS:prod.authentication.cursor.sh, DNS:*.api2.cursor.sh
[2026-06-03T14:33:58.165Z] DNS Time: 33ms
[2026-06-03T14:33:58.165Z] Connect Time: 1074ms
[2026-06-03T14:33:58.165Z] TLS Time: 260ms
[2026-06-03T14:33:58.165Z] Result: true in 1492ms

API: Success
Logs:
[2026-06-03T14:33:56.676Z] Start
[2026-06-03T14:33:59.494Z] Result: true

Ping: Success
Logs:
[2026-06-03T14:33:56.678Z] Sending ping 1
[2026-06-03T14:33:59.283Z] Response: ‘ping’ in 2605ms
[2026-06-03T14:33:59.283Z] Sending ping 2
[2026-06-03T14:33:59.680Z] Response: ‘ping’ in 397ms
[2026-06-03T14:33:59.680Z] Sending ping 3
[2026-06-03T14:33:59.795Z] Response: ‘ping’ in 115ms
[2026-06-03T14:33:59.796Z] Sending ping 4
[2026-06-03T14:33:59.833Z] Response: ‘ping’ in 37ms
[2026-06-03T14:33:59.833Z] Sending ping 5
[2026-06-03T14:33:59.942Z] Response: ‘ping’ in 109ms
[2026-06-03T14:33:59.942Z] Result: true

Chat: Error: Streaming responses are being buffered by a proxy in your network environment
Logs:
[2026-06-03T14:33:56.681Z] Starting stream
[2026-06-03T14:33:59.282Z] Response: ‘foo’ in 2596ms
[2026-06-03T14:33:59.598Z] Response: ‘foo’ in 316ms
[2026-06-03T14:34:00.593Z] Response: ‘foo’ in 995ms
[2026-06-03T14:34:01.704Z] Response: ‘foo’ in 1111ms
[2026-06-03T14:34:02.600Z] Response: ‘foo’ in 896ms
[2026-06-03T14:34:03.578Z] Result: Error: Streaming responses are being buffered by a proxy in your network environment

Agent: Error: Bidirectional streaming is not supported by the http2 proxy in your network environment
Logs:
[2026-06-03T14:33:56.685Z] Starting stream
[2026-06-03T14:33:56.686Z] Pushing first message
[2026-06-03T14:33:59.158Z] Response: ‘foo’ in 2472ms
[2026-06-03T14:33:59.673Z] Pushing next message
[2026-06-03T14:33:59.797Z] Response: ‘foo’ in 639ms
[2026-06-03T14:34:00.306Z] Pushing next message
[2026-06-03T14:34:00.452Z] Response: ‘foo’ in 655ms
[2026-06-03T14:34:00.957Z] Pushing next message
[2026-06-03T14:34:01.114Z] Response: ‘foo’ in 661ms
[2026-06-03T14:34:01.623Z] Pushing next message
[2026-06-03T14:34:01.742Z] Response: ‘foo’ in 628ms
[2026-06-03T14:34:01.742Z] Result: Error: Bidirectional streaming is not supported by the http2 proxy in your network environment

Marketplace: Success
Logs:
[2026-06-03T14:33:56.659Z] Host: marketplace.cursorapi.com
[2026-06-03T14:33:56.891Z] Response in 232ms
[2026-06-03T14:33:56.891Z] Response: 200
[2026-06-03T14:33:56.891Z] Response Type: cors
[2026-06-03T14:33:56.891Z] Server: null
[2026-06-03T14:33:56.891Z] Result: OK in 232ms

Authentication: Success
Logs:
[2026-06-03T14:33:56.662Z] Host: prod.authentication.cursor.sh
[2026-06-03T14:33:56.780Z] Response: 200 in 118ms

Authentication UI: Success
Logs:
[2026-06-03T14:33:56.674Z] DNS lookup: authenticator.cursor.sh
[2026-06-03T14:33:57.525Z] Resolved authenticator.cursor.sh to 172.64.152.23 in 762ms

Cursor Tab: Success
Logs:
[2026-06-03T14:33:56.674Z] DNS lookup: api3.cursor.sh
[2026-06-03T14:33:57.397Z] Resolved api3.cursor.sh to 104.18.18.125 in 661ms

Agent Endpoint: Success
Logs:
[2026-06-03T14:33:56.674Z] DNS lookup: agent.api5.cursor.sh
[2026-06-03T14:33:57.433Z] Resolved agent.api5.cursor.sh to 54.163.65.150 in 661ms

Codebase Indexing: Success
Logs:
[2026-06-03T14:33:56.674Z] DNS lookup: repo42.cursor.sh
[2026-06-03T14:33:57.497Z] Resolved repo42.cursor.sh to 32.198.148.213 in 760ms

Downloads: Success
Logs:
[2026-06-03T14:33:56.670Z] Host: downloads.cursor.com
[2026-06-03T14:33:56.845Z] Response: 403 in 174ms

CDN: Success
Logs:
[2026-06-03T14:33:56.672Z] Host: cursor-cdn.com
[2026-06-03T14:33:56.950Z] Response: 404 in 278ms

@heaneyben, it’s not embarrassing at all. Freezes like this often get fixed by a full restart, so you’re all good.

But your --disable-extensions test showed an important detail:

Chat: Streaming responses are being buffered by a proxy in your network environment
Agent: Bidirectional streaming is not supported by the http2 proxy in your network environment

This means something in your network setup like a corporate or transparent proxy, VPN, or antivirus traffic inspection is buffering HTTP/2 streaming. When that happens, the agent stops getting responses in time and tool calls can hang until they hit a timeout. The intermittent behavior matches this too, sometimes the proxy streams fine, sometimes it doesn’t.

To avoid this, try turning off HTTP/2:

  • App Settings Ctrl+Shift+,
  • Search for HTTP/2
  • Turn on Disable HTTP/2
  • Restart Cursor

This makes Cursor use HTTP/1.1, which these proxies usually don’t break. Let me know if the hangs come back after this and we can dig deeper.

The web search seems to have resolved for now. That only started yesterday anyway.

I’ll continue to monitor the write tool issues. I’ve had this for weeks, but haven’t experienced it yet today.

Thanks

Glad web search is working again. About the write tool: if the freeze comes back, catch it while it’s happening and send me two things: the error text from the UI (if you see something like ERROR_EXTENSION_HOST_TIMEOUT or Agent Execution Timed Out) and the Request ID (chat menu in the top right > Copy Request ID). That’ll make it clear where to look.

A couple things to keep handy since it’s happening on and off:

  1. A full restart of Cursor (quit it, don’t just close the window) usually clears a stuck extension host.
  2. If you’re on a corporate network, VPN, or proxy, try App Settings Cmd+Shift+, > search for HTTP/2 > enable Disable HTTP/2 and restart. Another user in this thread found their proxy was buffering HTTP/2 streaming, which caused the periodic tool call freezes.

Let me know if the write tool gets stuck again and send the error text and Request ID, and we’ll narrow it down.

It’s back now @deanrie . Both issues.

1. What I see when it hangs (UI vs agent)

In the chat I often see no error — the tool just runs forever (spinner / “working”) and I stop it or wait a long time. I don’t get a clear “Execution backend unavailable” or “Agent Execution Timed Out” in the UI.

When I asked the agent to reproduce deliberately, the failures came back as tool errors like:

  • Write was interrupted by the user after 60346ms before it completed.

  • WebSearch was interrupted by the user after 133045ms before it completed.

So from my side it feels like an indefinite hang; from the agent side it may eventually register as “interrupted” after ~60–130s. Where should I look in the UI for errors? I’ve checked the chat only — not sure if Developer Tools / Output would show more while it’s stuck.

2. When it started

Web search hanging started yesterday (I was away the week before, so I can’t tie it to a specific update). Write (creating new files via the agent) has been problematic for longer / I’ve been avoiding it for big docs — both are failing now in testing.

3. Environment

Everything is local (no Remote SSH / WSL). Multi-root workspace: photonik-frontend + photonik-backend.

4. Request IDs

  • 2822f332-56fc-481c-b300-5f27824c2b27

  • 8e205320-106b-480c-989a-f677d53d9415

  • 0f355a00-c236-47d0-bfee-a3f71b077afc

5. Network / HTTP

Network diagnostics: all green. No corporate network, VPN, or proxy. HTTP/2 already disabled (using HTTP/1.1). Restarted after that change.

6. Extensions

Ran cursor --disable-extensions from terminal (which cursor → /usr/local/bin/cursor). New window opens; normal Extensions UI isn’t available there (Cmd+Shift+X does nothing; Command Palette doesn’t show “Show Extensions”) — seems consistent with disable-extensions mode.

Re-tested in agent after that:

Tool Result
Read (existing file) Works immediately
Write (2-line test file) Hangs ~60s → interrupted, file not created
WebSearch (simple query) Hangs ~130s → interrupted, no results

So both Write and WebSearch still fail under current troubleshooting; Read works. Happy to capture a screenshot on the next hang if you specify which panel (chat only vs Developer Tools).

Let me know if you need a screen recording or logs from Developer: Open Logs Folder after the next repro.


Thanks for doing such detailed isolation, it really narrows it down. If the network is green, there’s no proxy, HTTP/2 is already off, extensions are disabled, and Read is instant while only Write and WebSearch hang, then it’s not about the network or your extensions. This looks like the exec provider or extension host isn’t responding in time, and the tools hang until they time out.

About where to look for errors, the chat doesn’t show everything. Next time it hangs, check this:

  1. Developer Tools: Cmd+Shift+P > Developer: Toggle Developer Tools > Console tab. You’ll often see the real error or stack trace there.
  2. Logs: Cmd+Shift+P > Developer: Open Logs Folder. We need the file from window*/exthost/exthost.log (and window*/exthost/output_logging_*). Grab it right after you reproduce it.
  3. Process Explorer: Cmd+Shift+P > Developer: Open Process Explorer. Catch it while it’s hanging and check the extensionHost process. See if it’s stuck at 100% CPU.

If you can share exthost.log after the next hang plus a screenshot of Process Explorer during the hang, that’s enough to pinpoint where it’s getting stuck. A screen recording isn’t needed, logs and Process Explorer are enough.

A couple more things to check for a multi-root workspace (photonik-frontend + photonik-backend). Does it still hang if you open only one folder as a normal workspace, not multi-root. Also try a full quit of Cursor before reproducing, an actual quit, not just closing the window. Sometimes that clears a stuck host.

This is a known class of issues and we’re tracking it, but I can’t share an ETA for a fix yet. The logs will help link your case to the right place, I’ll wait for them.