ENOTCONN: issue with Zed and ACP on Windows
Description
Hi, I am trying to use opencode with Zed on WIndows but I kept getting the error
ENOTCONN: socket is not connected
while I am trying to send prompt to opencode from zed.
Here is my Zed settings.json
{
"edit_predictions": {
"mode": "subtle"
},
"agent_servers": {
"OpenCode": {
"command": "opencode",
"args": ["--log-level", "DEBUG", "acp"]
}
},
"base_keymap": "Emacs",
"ui_font_size": 16,
"buffer_font_size": 15,
"theme": {
"mode": "system",
"light": "One Light",
"dark": "One Dark"
}
}
Here is the opencode log and the log-level doesn't seem to produce any DEBUG output.
share\opencode\log
❯ more 2025-11-02T031310.log
INFO 2025-11-02T03:13:10 +394ms service=default version=1.0.10 args=["--log-level","DEBUG","acp"] opencode
INFO 2025-11-02T03:13:10 +0ms service=project directory=C:\Users\david\Work\bin fromDirectory
INFO 2025-11-02T03:13:10 +107ms service=config path=C:\Users\david\.config\opencode\config.json loading
INFO 2025-11-02T03:13:10 +0ms service=config path=C:\Users\david\.config\opencode\opencode.json loading
INFO 2025-11-02T03:13:10 +10ms service=config path=C:\Users\david\.config\opencode\opencode.jsonc loading
INFO 2025-11-02T03:13:10 +4ms service=bun cmd=["C:\\ProgramData\\chocolatey\\lib\\opencode\\tools\\opencode.exe","add","@opencode-ai/[email protected]","--exact"] cwd=C:\Users\david\.config\opencode running
INFO 2025-11-02T03:13:10 +35ms service=bun code=0 stdout=bun add v1.3.0 (b0a6feca)
installed @opencode-ai/[email protected]
[12.00ms] done
stderr=Saved lockfile
done
INFO 2025-11-02T03:13:10 +2ms service=plugin [email protected] loading plugin
INFO 2025-11-02T03:13:10 +3ms service=plugin [email protected] loading plugin
INFO 2025-11-02T03:13:10 +41ms service=bus type=* subscribing
INFO 2025-11-02T03:13:10 +0ms service=bus type=session.updated subscribing
INFO 2025-11-02T03:13:10 +0ms service=bus type=message.updated subscribing
INFO 2025-11-02T03:13:10 +0ms service=bus type=message.part.updated subscribing
INFO 2025-11-02T03:13:10 +0ms service=format init
INFO 2025-11-02T03:13:10 +0ms service=bus type=file.edited subscribing
INFO 2025-11-02T03:13:10 +0ms service=lsp serverIds=deno, typescript, vue, eslint, gopls, ruby-lsp, pyright, elixir-ls, zls, csharp, rust, clangd, svelte, astro, jdtls, lua-ls enabled LSP servers
INFO 2025-11-02T03:13:10 +3ms service=bus type=command.executed subscribing
INFO 2025-11-02T03:13:10 +4ms service=bus type=permission.updated subscribing
INFO 2025-11-02T03:13:10 +0ms service=bus type=message.part.updated subscribing
INFO 2025-11-02T03:13:10 +1ms service=acp-command setup connection
ERROR 2025-11-02T03:13:10 +1ms service=acp-command promise={} reason=ENOTCONN: socket is not connected, open Unhandled rejection
ERROR 2025-11-02T03:13:10 +0ms service=default e=ENOTCONN: socket is not connected, open rejection
INFO 2025-11-02T03:13:10 +4ms service=acp-agent protocolVersion=1 initialize
ERROR 2025-11-02T03:13:10 +3ms service=provider error=ENOENT: no such file or directory, open 'C:\Users\david\.local\state\opencode\tui' failed to find last used model
INFO 2025-11-02T03:13:10 +2ms service=models.dev file={} refreshing
INFO 2025-11-02T03:13:10 +3ms service=provider init
INFO 2025-11-02T03:13:10 +2ms service=provider providerID=deepseek found
INFO 2025-11-02T03:13:10 +0ms service=provider providerID=siliconflow found
INFO 2025-11-02T03:13:10 +0ms service=provider providerID=opencode found
INFO 2025-11-02T03:13:10 +2ms service=session id=ses_5bd720ab7ffe4wjEbRfs2hHDN3 version=1.0.10 projectID=50eeb6c8c14480c3c86d4d2b5d6bb03980c2c437 directory=C:\Users\david\Work\bin title=ACP Session 9fc67507-e5f3-41fe-84e3-62f26bbb719c time={"created":1762053190984,"updated":1762053190984} created
INFO 2025-11-02T03:13:10 +1ms service=bus type=session.created publishing
INFO 2025-11-02T03:13:10 +0ms service=bus type=session.updated publishing
INFO 2025-11-02T03:13:10 +1ms service=acp-agent mcpServers=0 creating_session
ERROR 2025-11-02T03:13:10 +0ms service=provider error=ENOENT: no such file or directory, open 'C:\Users\david\.local\state\opencode\tui' failed to find last used model
INFO 2025-11-02T03:13:25 +14634ms service=acp-agent parts=[{"type":"text","text":"/init"}] parts
INFO 2025-11-02T03:13:25 +1ms service=session.prompt sessionID=ses_5bd720ab7ffe4wjEbRfs2hHDN3 command=init arguments= model=siliconflow/zai-org/GLM-4.6 agent=build command
INFO 2025-11-02T03:13:25 +2ms service=session.prompt session=ses_5bd720ab7ffe4wjEbRfs2hHDN3 prompt
INFO 2025-11-02T03:13:25 +4ms service=bus type=message.updated publishing
INFO 2025-11-02T03:13:25 +2ms service=bus type=message.part.updated publishing
INFO 2025-11-02T03:13:25 +2ms service=bus type=session.updated publishing
INFO 2025-11-02T03:13:25 +1ms service=provider providerID=siliconflow modelID=zai-org/GLM-4.6 getModel
INFO 2025-11-02T03:13:25 +0ms service=provider status=started providerID=siliconflow getSDK
INFO 2025-11-02T03:13:25 +90ms service=provider status=completed duration=90 providerID=siliconflow getSDK
INFO 2025-11-02T03:13:25 +1ms service=provider providerID=siliconflow modelID=zai-org/GLM-4.6 found
INFO 2025-11-02T03:13:25 +1ms service=session.lock sessionID=ses_5bd720ab7ffe4wjEbRfs2hHDN3 locked
INFO 2025-11-02T03:13:25 +0ms service=session.prompt session=ses_5bd720ab7ffe4wjEbRfs2hHDN3 sessionID=ses_5bd720ab7ffe4wjEbRfs2hHDN3 locking
INFO 2025-11-02T03:13:25 +1ms service=session.lock sessionID=ses_5bd720ab7ffe4wjEbRfs2hHDN3 unlocked
INFO 2025-11-02T03:13:25 +0ms service=session.prompt session=ses_5bd720ab7ffe4wjEbRfs2hHDN3 sessionID=ses_5bd720ab7ffe4wjEbRfs2hHDN3 unlocking
INFO 2025-11-02T03:13:25 +1ms service=bus type=session.idle publishing
INFO 2025-11-02T03:13:48 +22571ms service=acp-agent parts=[{"type":"text","text":"/init"}] parts
INFO 2025-11-02T03:13:48 +0ms service=session.prompt session=ses_5bd720ab7ffe4wjEbRfs2hHDN3 sessionID=ses_5bd720ab7ffe4wjEbRfs2hHDN3 command=init arguments= model=siliconflow/zai-org/GLM-4.6 agent=build command
INFO 2025-11-02T03:13:48 +0ms service=session.prompt session=ses_5bd720ab7ffe4wjEbRfs2hHDN3 prompt
INFO 2025-11-02T03:13:48 +3ms service=bus type=message.updated publishing
INFO 2025-11-02T03:13:48 +1ms service=bus type=message.part.updated publishing
INFO 2025-11-02T03:13:48 +1ms service=bus type=session.updated publishing
INFO 2025-11-02T03:13:48 +0ms service=session.lock sessionID=ses_5bd720ab7ffe4wjEbRfs2hHDN3 locked
INFO 2025-11-02T03:13:48 +0ms service=session.prompt session=ses_5bd720ab7ffe4wjEbRfs2hHDN3 sessionID=ses_5bd720ab7ffe4wjEbRfs2hHDN3 locking
INFO 2025-11-02T03:13:48 +1ms service=session.lock sessionID=ses_5bd720ab7ffe4wjEbRfs2hHDN3 unlocked
INFO 2025-11-02T03:13:48 +0ms service=session.prompt session=ses_5bd720ab7ffe4wjEbRfs2hHDN3 sessionID=ses_5bd720ab7ffe4wjEbRfs2hHDN3 unlocking
INFO 2025-11-02T03:13:48 +9ms service=bus type=session.idle publishing
INFO 2025-11-02T03:13:53 +4800ms service=default directory=C:\Users\david\Work\bin disposing instance
Here is the output from Zed
❯ zed --foreground .
2025-11-02T11:16:27+08:00 INFO [zed] ========== starting zed version 0.210.4, sha 428ef50 ==========
2025-11-02T11:16:27+08:00 INFO [gpui::platform::windows::directx_devices] Using GPU: NVIDIA GeForce RTX 3060
2025-11-02T11:16:27+08:00 INFO [gpui::platform::windows::directx_devices] Created device with Direct3D 11.1 feature level.
2025-11-02T11:16:27+08:00 INFO [gpui::platform::windows::direct_write] Use Segoe UI as UI font.
2025-11-02T11:16:27+08:00 INFO [zed] Using git binary path: None
2025-11-02T11:16:27+08:00 INFO [crashes] spawning crash handler process
2025-11-02T11:16:27+08:00 INFO [extension_host] extensions updated. loading 2, reloading 0, unloading 0
2025-11-02T11:16:27+08:00 INFO [auto_update] Auto Update: checking for updates
2025-11-02T11:16:27+08:00 INFO [client] set status on client 0: Authenticating
2025-11-02T11:16:27+08:00 INFO [crashes] connected to crash handler process after 100ms
2025-11-02T11:16:27+08:00 INFO [crashes] crash handler registered
2025-11-02T11:16:27+08:00 INFO [workspace] Rendered first frame
2025-11-02T11:16:27+08:00 INFO [zed::zed] Using GPU: GpuSpecs { is_software_emulated: false, device_name: "NVIDIA GeForce RTX 3060", driver_name: "NVIDIA Corporation", driver_info: "581.29 r581_07" }
2025-11-02T11:16:28+08:00 INFO [gpui::platform::windows::directx_renderer] Updating monochrome_sprite_pipeline buffer size from 512 to 1024
2025-11-02T11:16:28+08:00 INFO [project::prettier_store] Initializing default prettier with plugins {}
2025-11-02T11:16:28+08:00 INFO [project::environment] using project environment variables shell launched in "C:\\Users\\david\\Work\\bin". PATH=""
2025-11-02T11:16:29+08:00 INFO [node_runtime] using Node.js found on PATH: SystemNodeRuntime { node: "C:\\Users\\david\\AppData\\Roaming\\nvm\\v22.19.0\\node.exe", npm: "C:\\Users\\david\\AppData\\Roaming\\nvm\\v22.19.0\\npm.cmd", global_node_modules: "C:\\Users\\david\\AppData\\Roaming\\nvm\\v22.19.0\\node_modules\n", scratch_dir: "C:\\Users\\david\\AppData\\Local\\Zed\\node" }
2025-11-02T11:16:29+08:00 INFO [project::environment] using project environment variables shell launched in "C:\\Users\\david\\AppData\\Roaming\\Zed". PATH=""
2025-11-02T11:16:30+08:00 INFO [client] set status on client 491398: Authenticated
2025-11-02T11:16:30+08:00 INFO [project::prettier_store] Installing default prettier and plugins: [("prettier", "3.6.2")]
2025-11-02T11:16:31+08:00 INFO [lsp] starting language server process. binary path: "C:\\Users\\david\\AppData\\Roaming\\nvm\\v22.19.0\\node.exe", working directory: "C:\\Users\\david\\AppData\\Roaming\\Zed", args: ["C:\\Users\\david\\AppData\\Local\\Zed\\languages\\json-language-server\\node_modules/vscode-langservers-extracted/bin/vscode-json-language-server", "--stdio"]
2025-11-02T11:16:31+08:00 INFO [project::prettier_store] Initialized default prettier with plugins: {}
2025-11-02T11:16:31+08:00 INFO [project::prettier_store] Initializing default prettier with plugins {}
2025-11-02T11:16:49+08:00 WARN [agent_servers::acp] agent stderr: Error handling request {
2025-11-02T11:16:49+08:00 WARN [agent_servers::acp] agent stderr: jsonrpc: "2.0",
2025-11-02T11:16:49+08:00 WARN [agent_servers::acp] agent stderr: id: 4,
2025-11-02T11:16:49+08:00 WARN [agent_servers::acp] agent stderr: method: "session/prompt",
2025-11-02T11:16:49+08:00 WARN [agent_servers::acp] agent stderr: params: {
2025-11-02T11:16:49+08:00 WARN [agent_servers::acp] agent stderr: sessionId: "ses_5bd6f01d0ffe4z6KORR329eIGP",
2025-11-02T11:16:49+08:00 WARN [agent_servers::acp] agent stderr: prompt: [
2025-11-02T11:16:49+08:00 WARN [agent_servers::acp] agent stderr: [Object ...]
2025-11-02T11:16:49+08:00 WARN [agent_servers::acp] agent stderr: ],
2025-11-02T11:16:49+08:00 WARN [agent_servers::acp] agent stderr: },
2025-11-02T11:16:49+08:00 WARN [agent_servers::acp] agent stderr: } {
2025-11-02T11:16:49+08:00 WARN [agent_servers::acp] agent stderr: code: -32603,
2025-11-02T11:16:49+08:00 WARN [agent_servers::acp] agent stderr: message: "Internal error",
2025-11-02T11:16:49+08:00 WARN [agent_servers::acp] agent stderr: data: {
2025-11-02T11:16:49+08:00 WARN [agent_servers::acp] agent stderr: details: "ENOTCONN: socket is not connected, open",
2025-11-02T11:16:49+08:00 WARN [agent_servers::acp] agent stderr: },
2025-11-02T11:16:49+08:00 WARN [agent_servers::acp] agent stderr: }
Here is my opencode.json and I can use zed on commandline just fine.
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"siliconflow": {
"npm": "@ai-sdk/openai-compatible",
"name": "SiliconFlow",
"options": {
"baseURL": "https://api.siliconflow.cn/v1"
},
"models": {
"Qwen/Qwen3-Coder-480B-A35B-Instruct": {
"name": "Qwen3 Coder"
},
"MiniMaxAI/MiniMax-M2": {
"name": "MiniMax-M2"
},
"zai-org/GLM-4.6": {
"name": "GLM-4.6"
},
"moonshotai/Kimi-K2-Instruct-0905": {
"name": "Kimi-K2"
}
}
}
}
}
OpenCode version
1.0.10
Steps to reproduce
No response
Screenshot and/or share link
There are communication between Zed and OpenCode over ACP. The models configured does show up in Zed.
Operating System
Windows 11 Pro
Terminal
Windows Terminal
This is a bug in Bun. When OpenCode upgrades to > Bun v1.3.0 it should go away forever
Great! Any idea when that would be released?
This is a bug in Bun. When OpenCode upgrades to > Bun v1.3.0 it should go away forever
@taweili in next release we will upgrade bun, and once that's out ill ping u, lmk if it fixes your issue should be in 1.013 release
@taweili this should be released now, can u confirm that it works for u?
@taweili this should be released now, can u confirm that it works for u?
Well, it seems to find the program and try to start the session. However, the request to the server doesn't seem to go through. Just hanging.
I am using system proxy and this may be the issue. The commandline opencode works fine though.
Here is the log content. Is there a way I can increase the log level?
❯ more 2025-11-03T042601.log
INFO 2025-11-03T04:26:01 +372ms service=default version=1.0.13 args=["--log-level","DEBUG","acp"] opencode
INFO 2025-11-03T04:26:01 +1ms service=project directory=C:\Users\david\Work\bin fromDirectory
INFO 2025-11-03T04:26:01 +126ms service=config path=C:\Users\david\.config\opencode\config.json loading
INFO 2025-11-03T04:26:01 +0ms service=config path=C:\Users\david\.config\opencode\opencode.json loading
INFO 2025-11-03T04:26:01 +8ms service=config path=C:\Users\david\.config\opencode\opencode.jsonc loading
INFO 2025-11-03T04:26:01 +4ms service=bun cmd=["C:\\ProgramData\\chocolatey\\lib\\opencode\\tools\\opencode.exe","add","@opencode-ai/[email protected]","--exact"] cwd=C:\Users\david\.config\opencode running
INFO 2025-11-03T04:26:01 +47ms service=bun code=0 stdout=bun add v1.3.1 (89fa0f34)
installed @opencode-ai/[email protected]
[17.00ms] done
stderr=Saved lockfile
done
INFO 2025-11-03T04:26:01 +2ms service=plugin [email protected] loading plugin
INFO 2025-11-03T04:26:01 +3ms service=plugin [email protected] loading plugin
INFO 2025-11-03T04:26:01 +47ms service=bus type=* subscribing
INFO 2025-11-03T04:26:01 +0ms service=bus type=session.updated subscribing
INFO 2025-11-03T04:26:01 +0ms service=bus type=message.updated subscribing
INFO 2025-11-03T04:26:01 +0ms service=bus type=message.part.updated subscribing
INFO 2025-11-03T04:26:01 +0ms service=format init
INFO 2025-11-03T04:26:01 +0ms service=bus type=file.edited subscribing
INFO 2025-11-03T04:26:01 +1ms service=lsp serverIds=deno, typescript, vue, eslint, gopls, ruby-lsp, pyright, elixir-ls, zls, csharp, rust, clangd, svelte, astro, jdtls, lua-ls enabled LSP servers
INFO 2025-11-03T04:26:01 +2ms service=bus type=command.executed subscribing
INFO 2025-11-03T04:26:01 +3ms service=bus type=permission.updated subscribing
INFO 2025-11-03T04:26:01 +0ms service=bus type=message.part.updated subscribing
INFO 2025-11-03T04:26:01 +1ms service=acp-command setup connection
INFO 2025-11-03T04:26:01 +15ms service=acp-agent protocolVersion=1 initialize
ERROR 2025-11-03T04:26:01 +2ms service=provider error=ENOENT: no such file or directory, open 'C:\Users\david\.local\state\opencode\tui' failed to find last used model
INFO 2025-11-03T04:26:01 +3ms service=models.dev file={} refreshing
INFO 2025-11-03T04:26:01 +3ms service=provider init
INFO 2025-11-03T04:26:01 +2ms service=provider providerID=deepseek found
INFO 2025-11-03T04:26:01 +0ms service=provider providerID=siliconflow found
INFO 2025-11-03T04:26:01 +0ms service=provider providerID=opencode found
INFO 2025-11-03T04:26:01 +2ms service=session id=ses_5b808fd4bffeXcJqAFrEUTROus version=1.0.13 projectID=50eeb6c8c14480c3c86d4d2b5d6bb03980c2c437 directory=C:\Users\david\Work\bin title=ACP Session fd055e55-33b6-4319-a837-feb4074a6497 time={"created":1762143961780,"updated":1762143961780} created
INFO 2025-11-03T04:26:01 +1ms service=bus type=session.created publishing
INFO 2025-11-03T04:26:01 +0ms service=bus type=session.updated publishing
INFO 2025-11-03T04:26:01 +1ms service=acp-agent mcpServers=0 creating_session
ERROR 2025-11-03T04:26:01 +0ms service=provider error=ENOENT: no such file or directory, open 'C:\Users\david\.local\state\opencode\tui' failed to find last used model
INFO 2025-11-03T04:26:23 +22161ms service=acp-agent parts=[{"type":"text","text":"/init"}] parts
INFO 2025-11-03T04:26:23 +2ms service=session.prompt sessionID=ses_5b808fd4bffeXcJqAFrEUTROus command=init arguments= model=siliconflow/zai-org/GLM-4.6 agent=build command
INFO 2025-11-03T04:26:23 +3ms service=session.prompt session=ses_5b808fd4bffeXcJqAFrEUTROus prompt
INFO 2025-11-03T04:26:23 +5ms service=bus type=message.updated publishing
INFO 2025-11-03T04:26:23 +3ms service=bus type=message.part.updated publishing
INFO 2025-11-03T04:26:23 +2ms service=bus type=session.updated publishing
INFO 2025-11-03T04:26:23 +1ms service=provider providerID=siliconflow modelID=zai-org/GLM-4.6 getModel
INFO 2025-11-03T04:26:23 +0ms service=provider status=started providerID=siliconflow getSDK
INFO 2025-11-03T04:26:24 +100ms service=provider status=completed duration=100 providerID=siliconflow getSDK
INFO 2025-11-03T04:26:24 +2ms service=provider providerID=siliconflow modelID=zai-org/GLM-4.6 found
INFO 2025-11-03T04:26:24 +0ms service=session.lock sessionID=ses_5b808fd4bffeXcJqAFrEUTROus locked
INFO 2025-11-03T04:26:24 +0ms service=session.prompt session=ses_5b808fd4bffeXcJqAFrEUTROus sessionID=ses_5b808fd4bffeXcJqAFrEUTROus locking
INFO 2025-11-03T04:26:24 +87ms service=bus type=message.updated publishing
INFO 2025-11-03T04:26:24 +9ms service=session.prompt session=ses_5b808fd4bffeXcJqAFrEUTROus process
INFO 2025-11-03T04:26:24 +3ms service=session.prompt session=ses_5b808fd4bffeXcJqAFrEUTROus type=start part
INFO 2025-11-03T04:26:24 +6ms service=bus type=message.updated publishing
INFO 2025-11-03T04:26:24 +1ms service=bus type=session.updated publishing
INFO 2025-11-03T04:26:25 +1190ms service=session.prompt session=ses_5b808fd4bffeXcJqAFrEUTROus type=start-step part
INFO 2025-11-03T04:26:26 +738ms service=file.time sessionID=ses_5b808fd4bffeXcJqAFrEUTROus file=C:\Users\david\Work\bin\cc.bat read
Idk that looks like it could be provider latency, is there any difference using opencode outside of ACP?
Can confirm same behavior with OpenCode installed via chocolatey (default configuration and tried to use the Zen models). Using OpenCode outside of ACP works fine for me.
Idk that looks like it could be provider latency, is there any difference using opencode outside of ACP?
Works fine outside of ACP.
hm im not sure what would cause any difference, weird ill take a look
hm im not sure what would cause any difference, weird ill take a look
I finally got my development environment set up and took an in-depth look. There seems to be a potential deadlock situation between the handling of messages from the ACP and the stream message return from the provider.
Need more investigation.