opencode icon indicating copy to clipboard operation
opencode copied to clipboard

ENOTCONN: issue with Zed and ACP on Windows

Open taweili opened this issue 2 months ago • 20 comments

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.

Image

Operating System

Windows 11 Pro

Terminal

Windows Terminal

taweili avatar Nov 02 '25 03:11 taweili

This is a bug in Bun. When OpenCode upgrades to > Bun v1.3.0 it should go away forever

Jarred-Sumner avatar Nov 02 '25 04:11 Jarred-Sumner

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 avatar Nov 02 '25 06:11 taweili

@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

rekram1-node avatar Nov 02 '25 19:11 rekram1-node

@taweili this should be released now, can u confirm that it works for u?

rekram1-node avatar Nov 02 '25 23:11 rekram1-node

@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.

Image

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

taweili avatar Nov 03 '25 04:11 taweili

Idk that looks like it could be provider latency, is there any difference using opencode outside of ACP?

rekram1-node avatar Nov 04 '25 04:11 rekram1-node

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.

fc-jasper avatar Nov 04 '25 08:11 fc-jasper

Idk that looks like it could be provider latency, is there any difference using opencode outside of ACP?

Works fine outside of ACP.

taweili avatar Nov 04 '25 09:11 taweili

hm im not sure what would cause any difference, weird ill take a look

rekram1-node avatar Nov 04 '25 14:11 rekram1-node

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.

taweili avatar Nov 05 '25 11:11 taweili