coder / coder/code-server

remote extension host terminated unexpectedly 3 times within the last 5 minutes.

Open
#7,907 7 comments 0 reactions 0 assignees View on GitHub
bug needs-investigation triage
Dominant language
TypeScript
Stars
79.3k
Forks
6.8k
Avg merge
2d 6h
Merged PRs (30d)
41

Description

### Is there an existing issue for this?

- [x] I have searched the existing issues

### OS/Web Information

- Web Browser: Tried both Brave and Firefox
- Local OS: Windows 11, Fedora
- Remote OS: Ubuntu 24.04
- Remote Architecture: amd64
- `code-server --version`: 4.130.0 197ef3e8da8ee99ed6ca8f1a630157527e6d448f with Code 1.130.0

### Steps to Reproduce

1. Open code-server in Brave/Firefox
2. Let Extensions try to initialize
3. Experience failure

### Expected

Extensions should initialize without issue.

### Actual

The failure happens all on its own.

### Logs

```shell
`code-server --verbose` output

[TypeError: Converting circular structure to JSON
--> starting at object with constructor 'Object'
--- property 'issuerCertificate' closes the circle
at JSON.stringify ()
at L2 (file:///usr/lib/code-server/lib/vscode/out/vs/workbench/api/node/extensionHostProcess.js:435:106513)
at Sr.serializeRequestArguments (file:///usr/lib/code-server/lib/vscode/out/vs/workbench/api/node/extensionHostProcess.js:435:116364)
at i._remoteCall (file:///usr/lib/code-server/lib/vscode/out/vs/workbench/api/node/extensionHostProcess.js:435:112184)
at r..s.charCodeAt.r. (file:///usr/lib/code-server/lib/vscode/out/vs/workbench/api/node/extensionHostProcess.js:435:108829)
at file:///usr/lib/code-server/lib/vscode/out/vs/workbench/api/node/extensionHostProcess.js:541:157
at file:///usr/lib/code-server/lib/vscode/out/vs/workbench/api/node/extensionHostProcess.js:411:129
at Array.forEach ()
at N_.emit (file:///usr/lib/code-server/lib/vscode/out/vs/workbench/api/node/extensionHostProcess.js:411:117)
at N_.onUnexpectedError (file:///usr/lib/code-server/lib/vscode/out/vs/workbench/api/node/extensionHostProcess.js:411:385)
at je (file:///usr/lib/code-server/lib/vscode/out/vs/workbench/api/node/extensionHostProcess.js:411:694)
at process. (file:///usr/lib/code-server/lib/vscode/out/vs/workbench/api/node/extensionHostProcess.js:852:11163)
at process.emit (node:events:509:28)
at process._fatalException (node:internal/process/execution:159:25)]

Node.js v24.18.0

[16:06:08] [127.0.0.1][b75cf46d][ExtensionHostConnection] <6324> Extension Host Process exited with code: 7, signal: null.
[16:06:08] ServerLifetime: consumer 'ExtensionHost:b75cf46d' inactive (total: 0)
[16:06:08] [127.0.0.1][b75cf46d][ExtensionHostConnection] - startParams language: en
[16:06:08] [127.0.0.1][b75cf46d][ExtensionHostConnection] - startParams env: {"VSCODE_PROXY_URI":"http://localhost:8880/proxy/{{port}}/"}
[16:06:08] [127.0.0.1][b75cf46d][ExtensionHostConnection] Unknown reconnection token (seen before).
[16:06:08] [File Watcher (node.js)] Request to stop watching: /srv/development/lynn.heavyelement.cloud/.git (excludes: /var/www/.local/share/code-server/extensions/**, includes: [{"base":"/srv/development/lynn.heavyelement.cloud","pattern":".git/objects/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":".git/subtree-cache/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":".hg/store/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":"*/.git/objects/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":"*/.git/subtree-cache/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":"*/.hg/store/**/**"}], filter: , correlationId: ),/srv/development/lynn.heavyelement.cloud/.git/refs/remotes/origin/main (excludes: /var/www/.local/share/code-server/extensions/**, includes: [{"base":"/srv/development/lynn.heavyelement.cloud","pattern":".git/objects/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":".git/subtree-cache/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":".hg/store/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":"*/.git/objects/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":"*/.git/subtree-cache/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":"*/.hg/store/**/**"}], filter: , correlationId: ),/srv/development/cobalt-core/.git (excludes: /var/www/.local/share/code-server/extensions/**, includes: [{"base":"/srv/development/cobalt-core","pattern":".git/objects/**/**"},{"base":"/srv/development/cobalt-core","pattern":".git/subtree-cache/**/**"},{"base":"/srv/development/cobalt-core","pattern":".hg/store/**/**"},{"base":"/srv/development/cobalt-core","pattern":"*/.git/objects/**/**"},{"base":"/srv/development/cobalt-core","pattern":"*/.git/subtree-cache/**/**"},{"base":"/srv/development/cobalt-core","pattern":"*/.hg/store/**/**"}], filter: , correlationId: ),/srv/development/cobalt-core/.git/refs/remotes/origin/datamodel (excludes: /var/www/.local/share/code-server/extensions/**, includes: [{"base":"/srv/development/cobalt-core","pattern":".git/objects/**/**"},{"base":"/srv/development/cobalt-core","pattern":".git/subtree-cache/**/**"},{"base":"/srv/development/cobalt-core","pattern":".hg/store/**/**"},{"base":"/srv/development/cobalt-core","pattern":"*/.git/objects/**/**"},{"base":"/srv/development/cobalt-core","pattern":"*/.git/subtree-cache/**/**"},{"base":"/srv/development/cobalt-core","pattern":"*/.hg/store/**/**"}], filter: , correlationId: )
[16:06:08] [File Watcher (node.js)] stopping file watcher (/srv/development/lynn.heavyelement.cloud/.git (excludes: /var/www/.local/share/code-server/extensions/**, includes: [{"base":"/srv/development/lynn.heavyelement.cloud","pattern":".git/objects/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":".git/subtree-cache/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":".hg/store/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":"*/.git/objects/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":"*/.git/subtree-cache/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":"*/.hg/store/**/**"}], filter: , correlationId: ))
[16:06:08] [File Watcher (node.js)] stopping file watcher (/srv/development/lynn.heavyelement.cloud/.git/refs/remotes/origin/main (excludes: /var/www/.local/share/code-server/extensions/**, includes: [{"base":"/srv/development/lynn.heavyelement.cloud","pattern":".git/objects/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":".git/subtree-cache/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":".hg/store/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":"*/.git/objects/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":"*/.git/subtree-cache/**/**"},{"base":"/srv/development/lynn.heavyelement.cloud","pattern":"*/.hg/store/**/**"}], filter: , correlationId: ))
[16:06:08] [File Watcher (node.js)] stopping file watcher (/srv/development/cobalt-core/.git (excludes: /var/www/.local/share/code-server/extensions/**, includes: [{"base":"/srv/development/cobalt-core","pattern":".git/objects/**/**"},{"base":"/srv/development/cobalt-core","pattern":".git/subtree-cache/**/**"},{"base":"/srv/development/cobalt-core","pattern":".hg/store/**/**"},{"base":"/srv/development/cobalt-core","pattern":"*/.git/objects/**/**"},{"base":"/srv/development/cobalt-core","pattern":"*/.git/subtree-cache/**/**"},{"base":"/srv/development/cobalt-core","pattern":"*/.hg/store/**/**"}], filter: , correlationId: ))
[16:06:08] [File Watcher (node.js)] stopping file watcher (/srv/development/cobalt-core/.git/refs/remotes/origin/datamodel (excludes: /var/www/.local/share/code-server/extensions/**, includes: [{"base":"/srv/development/cobalt-core","pattern":".git/objects/**/**"},{"base":"/srv/development/cobalt-core","pattern":".git/subtree-cache/**/**"},{"base":"/srv/development/cobalt-core","pattern":".hg/store/**/**"},{"base":"/srv/development/cobalt-core","pattern":"*/.git/objects/**/**"},{"base":"/srv/development/cobalt-core","pattern":"*/.git/subtree-cache/**/**"},{"base":"/srv/development/cobalt-core","pattern":"*/.hg/store/**/**"}], filter: , correlationId: ))
```

### Screenshot/Video

Image

### Does this bug reproduce in native VS Code?

I did not test native VS Code

### Does this bug reproduce in VS Code web?

I did not test VS Code web

### Does this bug reproduce in GitHub Codespaces?

I did not test GitHub Codespaces

### Are you accessing code-server over a secure context?

- [x] I am using a secure context.

### Notes

I looked up this specific issue and [found this](https://github.com/coder/code-server/issues/7246) but the underlying issue seemed different and their solution didn't work for me.

I had a number of third party extensions installed including Intelephense. In diagnosing this issue I disabled *all* third party extensions and the problem still exists.

I've also tried with other workspaces and project directories.

Contributor guide

Open the contributing guide

Research direction

Reproduce the failure with `code-server --verbose` while Extensions initializes, then inspect the logged `lib/vscode/out/vs/workbench/api/node/extensionHostProcess.js` entry around the circular JSON serialization error. Compare behavior with third-party extensions disabled and across the reported workspaces; done means the remote extension host remains running and extensions initialize without the repeated termination.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js, typescript
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.