remote extension host terminated unexpectedly 3 times within the last 5 minutes.
- 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
### 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
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