-
Notifications
You must be signed in to change notification settings - Fork 15.1k
[BUG][Desktop] App UI becomes unresponsive after switching to remote server #21058
Description
Description
Summary When switching from a local server to a remote server in the OpenCode desktop app, the UI becomes completely unresponsive. The app doesn't crash, but no interactions (clicks, typing, etc.) work. Even switching back to the local server doesn't resolve the issue.
Root Cause Analysis(analyzed by Opencode)
-
PTY WebSocket Connection Leak (Primary)
PTY WebSocket connections (GET /pty/{id}/connect) from the previous server are not cleaned up during server switch
The leaked WebSocket continues trying to connect, blocking the UI thread -
Global Event Stream Start Failure
global-sdk.tsx changed to manual event stream start (start())
global-sync.tsx's onMount may not call start() in time or gets blocked -
Related Issues
Session/PTY IDs from previous server are invalid on new server (NotFoundError)
ConnectionGate's while(true) loop may not exit properly
Opencode Server Log
- The path '/Users/damho1104/Develop/src' is my macbook local path not server.
INFO 2026-04-05T00:05:02 +415ms service=default version=1.3.15 args=["serve","--hostname","0.0.0.0","--port","11455","--log-level","INFO"] opencode
INFO 2026-04-05T00:05:02 +7ms service=config path=/home/damho1104/.config/opencode/config.json loading
INFO 2026-04-05T00:05:02 +2ms service=config path=/home/damho1104/.config/opencode/opencode.json loading
INFO 2026-04-05T00:05:02 +13ms service=config path=/home/damho1104/.config/opencode/opencode.jsonc loading
INFO 2026-04-05T00:05:27 +25311ms service=server method=GET path=/global/health request
INFO 2026-04-05T00:05:27 +0ms service=server status=started method=GET path=/global/health request
INFO 2026-04-05T00:05:27 +1ms service=server status=completed duration=1 method=GET path=/global/health request
INFO 2026-04-05T00:05:29 +1538ms service=server method=PUT path=/pty/pty_d5af25359001buRgk1QZyHUKlO request
INFO 2026-04-05T00:05:29 +0ms service=server status=started method=PUT path=/pty/pty_d5af25359001buRgk1QZyHUKlO request
INFO 2026-04-05T00:05:29 +2ms service=default directory=/Users/damho1104/Develop/src creating instance
INFO 2026-04-05T00:05:29 +3ms service=project directory=/Users/damho1104/Develop/src fromDirectory
INFO 2026-04-05T00:05:29 +1ms service=server method=PUT path=/pty/pty_d5af25359001buRgk1QZyHUKlO request
INFO 2026-04-05T00:05:29 +0ms service=server status=started method=PUT path=/pty/pty_d5af25359001buRgk1QZyHUKlO request
INFO 2026-04-05T00:05:29 +2ms service=db path=/home/damho1104/.local/share/opencode/opencode.db opening database
INFO 2026-04-05T00:05:29 +3ms service=db count=10 mode=bundled applying migrations
INFO 2026-04-05T00:05:29 +5ms service=default directory=/Users/damho1104/Develop/src bootstrapping
INFO 2026-04-05T00:05:29 +16ms service=config path=/home/damho1104/.opencode/opencode.json loading
INFO 2026-04-05T00:05:29 +1ms service=config path=/home/damho1104/.opencode/opencode.jsonc loading
INFO 2026-04-05T00:05:29 +0ms service=npm dir=/home/damho1104/.config/opencode checking dependencies
INFO 2026-04-05T00:05:29 +1ms service=npm dependencies in sync
INFO 2026-04-05T00:05:29 +3ms service=server method=GET path=/agent request
INFO 2026-04-05T00:05:29 +0ms service=server status=started method=GET path=/agent request
INFO 2026-04-05T00:05:29 +5ms service=server method=GET path=/config request
INFO 2026-04-05T00:05:29 +0ms service=server status=started method=GET path=/config request
INFO 2026-04-05T00:05:29 +0ms service=server method=GET path=/session/status request
INFO 2026-04-05T00:05:29 +0ms service=server status=started method=GET path=/session/status request
INFO 2026-04-05T00:05:29 +0ms service=server method=GET path=/session request
INFO 2026-04-05T00:05:29 +0ms service=server status=started method=GET path=/session request
INFO 2026-04-05T00:05:29 +0ms service=default directory=/home/damho1104/src/opencode creating instance
INFO 2026-04-05T00:05:29 +1ms service=project directory=/home/damho1104/src/opencode fromDirectory
INFO 2026-04-05T00:05:29 +0ms service=server method=GET path=/session request
INFO 2026-04-05T00:05:29 +0ms service=server status=started method=GET path=/session request
INFO 2026-04-05T00:05:29 +0ms service=default directory=/home/damho1104/src/claude-code-wrapper-api-server creating instance
INFO 2026-04-05T00:05:29 +0ms service=project directory=/home/damho1104/src/claude-code-wrapper-api-server fromDirectory
INFO 2026-04-05T00:05:29 +0ms service=server method=GET path=/session request
INFO 2026-04-05T00:05:29 +0ms service=server status=started method=GET path=/session request
INFO 2026-04-05T00:05:29 +0ms service=default directory=/home/damho1104/src/gemini-proxy-api-server creating instance
INFO 2026-04-05T00:05:29 +0ms service=project directory=/home/damho1104/src/gemini-proxy-api-server fromDirectory
INFO 2026-04-05T00:05:29 +3ms service=plugin name=CodexAuthPlugin loading internal plugin
INFO 2026-04-05T00:05:29 +0ms service=plugin name=CopilotAuthPlugin loading internal plugin
INFO 2026-04-05T00:05:29 +1ms service=plugin name=gitlabAuthPlugin loading internal plugin
INFO 2026-04-05T00:05:29 +0ms service=plugin name=PoeAuthPlugin loading internal plugin
INFO 2026-04-05T00:05:29 +1ms service=npm dir=/home/damho1104/.opencode checking dependencies
INFO 2026-04-05T00:05:29 +1ms service=npm dependencies in sync
INFO 2026-04-05T00:05:29 +15ms service=plugin path=oh-my-openagent@latest loading plugin
INFO 2026-04-05T00:05:29 +1ms service=plugin path=opencode-gemini-auth@latest loading plugin
INFO 2026-04-05T00:05:29 +5ms service=default directory=/home/damho1104/src/opencode bootstrapping
INFO 2026-04-05T00:05:29 +3ms service=npm pkg=oh-my-openagent@latest installing package
INFO 2026-04-05T00:05:29 +2ms service=npm pkg=opencode-gemini-auth@latest installing package
INFO 2026-04-05T00:05:29 +28ms service=default directory=/home/damho1104/src/claude-code-wrapper-api-server bootstrapping
INFO 2026-04-05T00:05:29 +2ms service=default directory=/home/damho1104/src/gemini-proxy-api-server bootstrapping
INFO 2026-04-05T00:05:29 +12ms service=config path=/home/damho1104/src/opencode/.opencode/opencode.json loading
INFO 2026-04-05T00:05:29 +1ms service=server method=GET path=/file request
INFO 2026-04-05T00:05:29 +0ms service=server status=started method=GET path=/file request
INFO 2026-04-05T00:05:29 +0ms service=server method=PUT path=/pty/pty_d5af25359001buRgk1QZyHUKlO request
INFO 2026-04-05T00:05:29 +0ms service=server status=started method=PUT path=/pty/pty_d5af25359001buRgk1QZyHUKlO request
INFO 2026-04-05T00:05:29 +0ms service=server method=GET path=/pty/pty_d5af25359001buRgk1QZyHUKlO/connect request
INFO 2026-04-05T00:05:29 +0ms service=server status=started method=GET path=/pty/pty_d5af25359001buRgk1QZyHUKlO/connect request
INFO 2026-04-05T00:05:29 +1ms service=config path=/home/damho1104/src/opencode/.opencode/opencode.jsonc loading
INFO 2026-04-05T00:05:29 +131ms service=npm dir=/home/damho1104/.config/opencode checking dependencies
INFO 2026-04-05T00:05:29 +5ms service=npm dependencies in sync
INFO 2026-04-05T00:05:29 +13ms service=config path=/home/damho1104/.opencode/opencode.json loading
INFO 2026-04-05T00:05:29 +7ms service=config path=/home/damho1104/.opencode/opencode.json loading
INFO 2026-04-05T00:05:29 +1ms service=config path=/home/damho1104/.opencode/opencode.jsonc loading
INFO 2026-04-05T00:05:29 +5ms service=config path=/home/damho1104/.opencode/opencode.jsonc loading
INFO 2026-04-05T00:05:29 +56ms service=npm dir=/home/damho1104/src/opencode/.opencode checking dependencies
INFO 2026-04-05T00:05:29 +4ms service=npm dependencies in sync
INFO 2026-04-05T00:05:29 +3ms service=plugin name=CodexAuthPlugin loading internal plugin
INFO 2026-04-05T00:05:29 +0ms service=plugin name=CopilotAuthPlugin loading internal plugin
INFO 2026-04-05T00:05:29 +0ms service=plugin name=gitlabAuthPlugin loading internal plugin
INFO 2026-04-05T00:05:29 +0ms service=plugin name=PoeAuthPlugin loading internal plugin
INFO 2026-04-05T00:05:29 +1ms service=plugin name=CodexAuthPlugin loading internal plugin
INFO 2026-04-05T00:05:29 +0ms service=plugin name=CopilotAuthPlugin loading internal plugin
INFO 2026-04-05T00:05:29 +0ms service=plugin name=gitlabAuthPlugin loading internal plugin
INFO 2026-04-05T00:05:29 +0ms service=plugin name=PoeAuthPlugin loading internal plugin
INFO 2026-04-05T00:05:29 +2ms service=npm dir=/home/damho1104/.opencode checking dependencies
INFO 2026-04-05T00:05:29 +3ms service=config path=/home/damho1104/.opencode/opencode.json loading
INFO 2026-04-05T00:05:29 +1ms service=npm dependencies in sync
INFO 2026-04-05T00:05:29 +0ms service=config path=/home/damho1104/.opencode/opencode.jsonc loading
INFO 2026-04-05T00:05:30 +1129ms service=plugin name=CodexAuthPlugin loading internal plugin
INFO 2026-04-05T00:05:30 +1ms service=plugin name=CopilotAuthPlugin loading internal plugin
INFO 2026-04-05T00:05:30 +0ms service=plugin name=gitlabAuthPlugin loading internal plugin
INFO 2026-04-05T00:05:30 +0ms service=plugin name=PoeAuthPlugin loading internal plugin
INFO 2026-04-05T00:05:30 +12ms service=npm dir=/home/damho1104/.opencode checking dependencies
INFO 2026-04-05T00:05:30 +0ms service=npm dir=/home/damho1104/.config/opencode checking dependencies
INFO 2026-04-05T00:05:30 +1ms service=npm dependencies in sync
INFO 2026-04-05T00:05:30 +0ms service=npm dependencies in sync
INFO 2026-04-05T00:05:30 +0ms service=plugin path=oh-my-openagent@latest loading plugin
INFO 2026-04-05T00:05:30 +0ms service=plugin path=opencode-gemini-auth@latest loading plugin
INFO 2026-04-05T00:05:30 +1ms service=npm pkg=oh-my-openagent@latest installing package
INFO 2026-04-05T00:05:30 +0ms service=npm pkg=opencode-gemini-auth@latest installing package
INFO 2026-04-05T00:05:30 +133ms service=npm dir=/home/damho1104/.config/opencode checking dependencies
INFO 2026-04-05T00:05:30 +1ms service=npm dependencies in sync
INFO 2026-04-05T00:05:30 +0ms service=plugin path=oh-my-openagent@latest loading plugin
INFO 2026-04-05T00:05:30 +0ms service=plugin path=opencode-gemini-auth@latest loading plugin
INFO 2026-04-05T00:05:30 +1ms service=npm pkg=oh-my-openagent@latest installing package
INFO 2026-04-05T00:05:30 +0ms service=npm pkg=opencode-gemini-auth@latest installing package
INFO 2026-04-05T00:05:31 +25ms service=npm dir=/home/damho1104/.opencode checking dependencies
INFO 2026-04-05T00:05:31 +1ms service=npm dependencies in sync
INFO 2026-04-05T00:05:31 +8ms service=plugin path=oh-my-openagent@latest loading plugin
INFO 2026-04-05T00:05:31 +0ms service=plugin path=opencode-gemini-auth@latest loading plugin
INFO 2026-04-05T00:05:31 +31ms service=npm pkg=oh-my-openagent@latest installing package
INFO 2026-04-05T00:05:31 +0ms service=npm pkg=opencode-gemini-auth@latest installing package
INFO 2026-04-05T00:05:31 +42ms service=bus type=* subscribing
INFO 2026-04-05T00:05:31 +4ms service=bus type=session.updated subscribing
INFO 2026-04-05T00:05:31 +0ms service=bus type=message.updated subscribing
INFO 2026-04-05T00:05:31 +0ms service=bus type=message.part.updated subscribing
INFO 2026-04-05T00:05:31 +0ms service=bus type=session.diff subscribing
INFO 2026-04-05T00:05:31 +2ms service=format init
INFO 2026-04-05T00:05:31 +1ms service=lsp serverIds=deno, typescript, vue, eslint, oxlint, biome, gopls, ruby-lsp, pyright, elixir-ls, zls, csharp, fsharp, sourcekit-lsp, rust, clangd, svelte, astro, jdtls, kotlin-ls, yaml-ls, lua-ls, php intelephense, prisma, dart, ocaml-lsp, bash, terraform, texlab, dockerfile, gleam, clojure-lsp, nixd, tinymist, haskell-language-server, julials enabled LSP servers
INFO 2026-04-05T00:05:31 +1ms service=file init
INFO 2026-04-05T00:05:31 +4ms service=file.watcher directory=/Users/damho1104/Develop/src init
INFO 2026-04-05T00:05:31 +1ms service=file.watcher directory=/Users/damho1104/Develop/src platform=linux backend=inotify watcher backend
INFO 2026-04-05T00:05:31 +4ms service=bus type=command.executed subscribing
ERROR 2026-04-05T00:05:31 +20ms service=server error=Session not found failed
INFO 2026-04-05T00:05:31 +0ms service=server status=completed duration=1732 method=GET path=/config request
INFO 2026-04-05T00:05:31 +0ms service=server status=completed duration=1732 method=GET path=/session/status request
INFO 2026-04-05T00:05:31 +4ms service=server status=completed duration=1660 method=GET path=/pty/pty_d5af25359001buRgk1QZyHUKlO/connect request
INFO 2026-04-05T00:05:31 +1ms service=server status=completed duration=1779 method=PUT path=/pty/pty_d5af25359001buRgk1QZyHUKlO request
INFO 2026-04-05T00:05:31 +0ms service=server status=completed duration=1773 method=PUT path=/pty/pty_d5af25359001buRgk1QZyHUKlO request
INFO 2026-04-05T00:05:31 +0ms service=server status=completed duration=1661 method=PUT path=/pty/pty_d5af25359001buRgk1QZyHUKlO request
INFO 2026-04-05T00:05:31 +8ms service=server status=completed duration=1669 method=GET path=/file request
WARN 2026-04-05T00:05:31 +31ms service=skill name=web-design-guidelines existing=/home/damho1104/.claude/skills/web-design-guidelines/SKILL.md duplicate=/home/damho1104/.agents/skills/web-design-guidelines/SKILL.md duplicate skill name
WARN 2026-04-05T00:05:31 +0ms service=skill name=vercel-react-best-practices existing=/home/damho1104/.claude/skills/vercel-react-best-practices/SKILL.md duplicate=/home/damho1104/.agents/skills/vercel-react-best-practices/SKILL.md duplicate skill name
WARN 2026-04-05T00:05:31 +0ms service=skill name=mermaid-diagrams existing=/home/damho1104/.claude/skills/mermaid-diagrams/SKILL.md duplicate=/home/damho1104/.agents/skills/mermaid-diagrams/SKILL.md duplicate skill name
INFO 2026-04-05T00:05:31 +3ms service=bus type=* subscribing
INFO 2026-04-05T00:05:31 +0ms service=bus type=session.updated subscribing
INFO 2026-04-05T00:05:31 +0ms service=bus type=message.updated subscribing
INFO 2026-04-05T00:05:31 +0ms service=bus type=message.part.updated subscribing
INFO 2026-04-05T00:05:31 +0ms service=bus type=session.diff subscribing
INFO 2026-04-05T00:05:31 +0ms service=format init
INFO 2026-04-05T00:05:31 +1ms service=lsp serverIds=deno, typescript, vue, eslint, oxlint, biome, gopls, ruby-lsp, pyright, elixir-ls, zls, csharp, fsharp, sourcekit-lsp, rust, clangd, svelte, astro, jdtls, kotlin-ls, yaml-ls, lua-ls, php intelephense, prisma, dart, ocaml-lsp, bash, terraform, texlab, dockerfile, gleam, clojure-lsp, nixd, tinymist, haskell-language-server, julials enabled LSP servers
INFO 2026-04-05T00:05:31 +0ms service=file.watcher directory=/home/damho1104/src/opencode init
INFO 2026-04-05T00:05:31 +0ms service=file.watcher directory=/home/damho1104/src/opencode platform=linux backend=inotify watcher backend
INFO 2026-04-05T00:05:31 +2ms service=bus type=command.executed subscribing
INFO 2026-04-05T00:05:31 +2ms service=server status=completed duration=1784 method=GET path=/session request
INFO 2026-04-05T00:05:31 +27ms service=vcs branch=dev default_branch=dev initialized
INFO 2026-04-05T00:05:31 +0ms service=bus type=file.watcher.updated subscribing
WARN 2026-04-05T00:05:31 +4ms service=skill name=web-design-guidelines existing=/home/damho1104/.agents/skills/web-design-guidelines/SKILL.md duplicate=/home/damho1104/.config/opencode/skills/web-design-guidelines/SKILL.md duplicate skill name
WARN 2026-04-05T00:05:31 +0ms service=skill name=vercel-react-best-practices existing=/home/damho1104/.agents/skills/vercel-react-best-practices/SKILL.md duplicate=/home/damho1104/.config/opencode/skills/vercel-react-best-practices/SKILL.md duplicate skill name
WARN 2026-04-05T00:05:31 +0ms service=skill name=mermaid-diagrams existing=/home/damho1104/.agents/skills/mermaid-diagrams/SKILL.md duplicate=/home/damho1104/.config/opencode/skills/mermaid-diagrams/SKILL.md duplicate skill name
INFO 2026-04-05T00:05:31 +1ms service=skill count=4 init
INFO 2026-04-05T00:05:31 +3ms service=server status=completed duration=1824 method=GET path=/agent request
INFO 2026-04-05T00:05:31 +10ms service=bus type=* subscribing
INFO 2026-04-05T00:05:31 +0ms service=bus type=session.updated subscribing
INFO 2026-04-05T00:05:31 +0ms service=bus type=message.updated subscribing
INFO 2026-04-05T00:05:31 +0ms service=bus type=message.part.updated subscribing
INFO 2026-04-05T00:05:31 +0ms service=bus type=session.diff subscribing
INFO 2026-04-05T00:05:31 +1ms service=format init
INFO 2026-04-05T00:05:31 +0ms service=lsp serverIds=deno, typescript, vue, eslint, oxlint, biome, gopls, ruby-lsp, pyright, elixir-ls, zls, csharp, fsharp, sourcekit-lsp, rust, clangd, svelte, astro, jdtls, kotlin-ls, yaml-ls, lua-ls, php intelephense, prisma, dart, ocaml-lsp, bash, terraform, texlab, dockerfile, gleam, clojure-lsp, nixd, tinymist, haskell-language-server, julials enabled LSP servers
INFO 2026-04-05T00:05:31 +1ms service=file.watcher directory=/home/damho1104/src/gemini-proxy-api-server init
INFO 2026-04-05T00:05:31 +0ms service=file.watcher directory=/home/damho1104/src/gemini-proxy-api-server platform=linux backend=inotify watcher backend
INFO 2026-04-05T00:05:31 +1ms service=bus type=command.executed subscribing
INFO 2026-04-05T00:05:31 +1ms service=server status=completed duration=1832 method=GET path=/session request
INFO 2026-04-05T00:05:31 +21ms service=vcs branch=main default_branch=main initialized
INFO 2026-04-05T00:05:31 +0ms service=bus type=file.watcher.updated subscribing
INFO 2026-04-05T00:05:31 +13ms service=bus type=* subscribing
INFO 2026-04-05T00:05:31 +1ms service=bus type=session.updated subscribing
INFO 2026-04-05T00:05:31 +0ms service=bus type=message.updated subscribing
INFO 2026-04-05T00:05:31 +0ms service=bus type=message.part.updated subscribing
INFO 2026-04-05T00:05:31 +0ms service=bus type=session.diff subscribing
INFO 2026-04-05T00:05:31 +0ms service=format init
INFO 2026-04-05T00:05:31 +0ms service=lsp serverIds=deno, typescript, vue, eslint, oxlint, biome, gopls, ruby-lsp, pyright, elixir-ls, zls, csharp, fsharp, sourcekit-lsp, rust, clangd, svelte, astro, jdtls, kotlin-ls, yaml-ls, lua-ls, php intelephense, prisma, dart, ocaml-lsp, bash, terraform, texlab, dockerfile, gleam, clojure-lsp, nixd, tinymist, haskell-language-server, julials enabled LSP servers
INFO 2026-04-05T00:05:31 +1ms service=file.watcher directory=/home/damho1104/src/claude-code-wrapper-api-server init
INFO 2026-04-05T00:05:31 +0ms service=file.watcher directory=/home/damho1104/src/claude-code-wrapper-api-server platform=linux backend=inotify watcher backend
INFO 2026-04-05T00:05:31 +1ms service=bus type=command.executed subscribing
INFO 2026-04-05T00:05:31 +1ms service=server status=completed duration=1870 method=GET path=/session request
INFO 2026-04-05T00:05:31 +12ms service=server method=GET path=/path request
INFO 2026-04-05T00:05:31 +0ms service=server status=started method=GET path=/path request
INFO 2026-04-05T00:05:31 +1ms service=server status=completed duration=1 method=GET path=/path request
INFO 2026-04-05T00:05:31 +0ms service=server method=GET path=/command request
INFO 2026-04-05T00:05:31 +0ms service=server status=started method=GET path=/command request
INFO 2026-04-05T00:05:31 +4ms service=mcp key=websearch type=remote found
INFO 2026-04-05T00:05:31 +4ms service=mcp key=context7 type=remote found
INFO 2026-04-05T00:05:31 +1ms service=mcp key=grep_app type=remote found
INFO 2026-04-05T00:05:31 +1ms service=server method=GET path=/vcs request
INFO 2026-04-05T00:05:31 +0ms service=server status=started method=GET path=/vcs request
INFO 2026-04-05T00:05:31 +1ms service=server status=completed duration=1 method=GET path=/vcs request
INFO 2026-04-05T00:05:31 +0ms service=server method=GET path=/project/current request
INFO 2026-04-05T00:05:31 +0ms service=server status=started method=GET path=/project/current request
INFO 2026-04-05T00:05:31 +1ms service=server status=completed duration=1 method=GET path=/project/current request
INFO 2026-04-05T00:05:31 +0ms service=server method=GET path=/question request
INFO 2026-04-05T00:05:31 +0ms service=server status=started method=GET path=/question request
INFO 2026-04-05T00:05:31 +1ms service=server status=completed duration=1 method=GET path=/question request
INFO 2026-04-05T00:05:31 +0ms service=server method=GET path=/permission request
INFO 2026-04-05T00:05:31 +0ms service=server status=started method=GET path=/permission request
INFO 2026-04-05T00:05:31 +1ms service=server status=completed duration=1 method=GET path=/permission request
INFO 2026-04-05T00:05:31 +0ms service=server method=GET path=/session request
INFO 2026-04-05T00:05:31 +0ms service=server status=started method=GET path=/session request
INFO 2026-04-05T00:05:31 +1ms service=server status=completed duration=1 method=GET path=/session request
INFO 2026-04-05T00:05:31 +6ms service=server method=GET path=/mcp request
INFO 2026-04-05T00:05:31 +0ms service=server status=started method=GET path=/mcp request
INFO 2026-04-05T00:05:31 +3ms service=vcs branch=main default_branch=main initialized
INFO 2026-04-05T00:05:31 +0ms service=bus type=file.watcher.updated subscribing
INFO 2026-04-05T00:05:31 +146ms service=server method=GET path=/pty/pty_d5af25359001buRgk1QZyHUKlO request
INFO 2026-04-05T00:05:31 +0ms service=server status=started method=GET path=/pty/pty_d5af25359001buRgk1QZyHUKlO request
ERROR 2026-04-05T00:05:31 +1ms service=server error=NotFoundError failed
INFO 2026-04-05T00:05:31 +0ms service=server status=completed duration=1 method=GET path=/pty/pty_d5af25359001buRgk1QZyHUKlO request
INFO 2026-04-05T00:05:31 +13ms service=server method=POST path=/pty request
INFO 2026-04-05T00:05:31 +0ms service=server status=started method=POST path=/pty request
INFO 2026-04-05T00:05:31 +2ms service=pty id=pty_d5af57eca001LeEaQBEEd9BwTz cmd=/bin/bash args=["-l"] cwd=/Users/damho1104/Develop/src creating session
INFO 2026-04-05T00:05:31 +14ms service=bus type=pty.created publishing
INFO 2026-04-05T00:05:31 +6ms service=server status=completed duration=22 method=POST path=/pty request
INFO 2026-04-05T00:05:31 +24ms service=server method=PUT path=/pty/pty_d5af25359001buRgk1QZyHUKlO request
INFO 2026-04-05T00:05:31 +0ms service=server status=started method=PUT path=/pty/pty_d5af25359001buRgk1QZyHUKlO request
INFO 2026-04-05T00:05:31 +1ms service=server status=completed duration=1 method=PUT path=/pty/pty_d5af25359001buRgk1QZyHUKlO request
INFO 2026-04-05T00:05:31 +1ms service=server method=PUT path=/pty/pty_d5af57eca001LeEaQBEEd9BwTz request
INFO 2026-04-05T00:05:31 +0ms service=server status=started method=PUT path=/pty/pty_d5af57eca001LeEaQBEEd9BwTz request
INFO 2026-04-05T00:05:31 +0ms service=bus type=pty.updated publishing
INFO 2026-04-05T00:05:31 +1ms service=server status=completed duration=1 method=PUT path=/pty/pty_d5af57eca001LeEaQBEEd9BwTz request
INFO 2026-04-05T00:05:31 +2ms service=server method=GET path=/pty/pty_d5af57eca001LeEaQBEEd9BwTz/connect request
INFO 2026-04-05T00:05:31 +0ms service=server status=started method=GET path=/pty/pty_d5af57eca001LeEaQBEEd9BwTz/connect request
INFO 2026-04-05T00:05:31 +2ms service=pty id=pty_d5af57eca001LeEaQBEEd9BwTz client connected to session
INFO 2026-04-05T00:05:31 +0ms service=server status=completed duration=2 method=GET path=/pty/pty_d5af57eca001LeEaQBEEd9BwTz/connect request
INFO 2026-04-05T00:05:31 +210ms service=mcp key=websearch transport=StreamableHTTP connected
INFO 2026-04-05T00:05:31 +218ms service=mcp key=websearch toolCount=1 create() successfully created client
INFO 2026-04-05T00:05:32 +132ms service=mcp key=grep_app transport=StreamableHTTP connected
INFO 2026-04-05T00:05:32 +218ms service=mcp key=context7 transport=StreamableHTTP connected
INFO 2026-04-05T00:05:32 +80ms service=mcp key=grep_app toolCount=1 create() successfully created client
INFO 2026-04-05T00:05:33 +691ms service=mcp key=context7 toolCount=2 create() successfully created client
INFO 2026-04-05T00:05:33 +1ms service=server status=completed duration=1766 method=GET path=/mcp request
ERROR 2026-04-05T00:05:33 +198ms service=mcp clientName=context7 error=MCP error -32601: Method not found failed to get prompts
ERROR 2026-04-05T00:05:33 +55ms service=mcp clientName=grep_app error=MCP error -32601: Method not found failed to get prompts
INFO 2026-04-05T00:05:33 +2ms service=server status=completed duration=2042 method=GET path=/command request
INFO 2026-04-05T00:05:33 +39ms service=server method=GET path=/provider request
INFO 2026-04-05T00:05:33 +0ms service=server status=started method=GET path=/provider request
INFO 2026-04-05T00:05:33 +14ms service=provider status=started state
INFO 2026-04-05T00:05:33 +14ms service=provider init
INFO 2026-04-05T00:05:34 +937ms service=provider providerID=zai-coding-plan found
INFO 2026-04-05T00:05:34 +0ms service=provider providerID=openrouter found
INFO 2026-04-05T00:05:34 +0ms service=provider providerID=opencode-go found
INFO 2026-04-05T00:05:34 +0ms service=provider providerID=openai found
INFO 2026-04-05T00:05:34 +0ms service=provider providerID=github-copilot found
INFO 2026-04-05T00:05:34 +0ms service=provider providerID=opencode found
INFO 2026-04-05T00:05:34 +1ms service=provider providerID=google found
INFO 2026-04-05T00:05:34 +0ms service=provider providerID=lmstudio found
INFO 2026-04-05T00:05:34 +0ms service=provider providerID=cl-co-wrapper found
INFO 2026-04-05T00:05:34 +0ms service=provider status=completed duration=952 state
INFO 2026-04-05T00:05:34 +38ms service=server status=completed duration=1004 method=GET path=/provider request
Plugins
opencode-openai-codex-auth, oh-my-openagent@latest
OpenCode version
1.3.15
Steps to reproduce
- Launch OpenCode desktop app
- Connect to local server and work (create sessions, use terminals)
- Switch to a remote server via the server selection menu
- After health check succeeds, UI freezes
Screenshot and/or share link
2026-04-05.09.28.03.mov
Operating System
macOS 26.4
Terminal
No response