Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Failed language-server startup leaks build discovery observers

Open
#440 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
57/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
typescript
Domain
devtools

Research direction

The issue identifies the failed language-server startup path and the existing Windows VS Code lifecycle test, “a server that cannot launch leaves the status bar in Error, never Running.” Start by locating client.start(), build observer registration, and the cleanup on rejection, then run that lifecycle test. Done means observers are disposed on startup failure, retained by extension subscriptions after success, and the regression passes.

Written by the indexing model from the issue text.

Description

A failed language-server launch retains the build-completion notification listener, workspace-folder listener, and Signals effect. They are registered before client.start(), but the rejection path only disposes Razor HTML resources.

The existing unchanged real Windows VS Code lifecycle test a server that cannot launch leaves the status bar in Error, never Running reproduces it: context.subscriptions.length is 4, expected 1. Status assertions pass; the failure is retained build observers.

Fix: aggregate build observers into a Disposable, register before startup, dispose it on startup rejection, and add it to extension subscriptions only after successful startup. Private regression: unchanged failing test RED -> GREEN, then all 23 lifecycle and real build-completion refresh cases pass with the rebuilt extension bundle.

Dominant language
TypeScript
Stars
168
Forks
9
Avg merge
2h 25m
Merged PRs (30d)
59

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

  • No Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Nimblesite/SharpLsp

All issues in Nimblesite/SharpLsp

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.