{"record":{"id":"9cefc943950a9143","repo":"deepseek-ai/deepseek-harness","slug":"lsp-disposed","errorCode":"LSP_DISPOSED","errorMessage":"lsp-stdio provider is disposed","messagePattern":"lsp-stdio provider is disposed","errorType":"exception","errorClass":"LspError","httpStatus":null,"severity":"error","filePath":"packages/lsp/lsp-stdio/src/index.ts","lineNumber":249,"sourceCode":"    private readonly fs: Context['fs'],\n    private readonly config: ResolvedServerConfig,\n    private readonly executable: string,\n    private readonly spawner: ConnectionSpawner,\n  ) {\n    this.id = LspProviderId(providerId)\n    this.extensionToLanguage = config.extensionToLanguage\n  }\n\n  /** Read the disposed flag through a method so a `query()` await cannot narrow it to a literal. */\n  private isDisposed(): boolean {\n    return this.disposed\n  }\n\n  /** Reject work that cannot publish or use a provider-owned instance. */\n  private assertActive(signal?: AbortSignal): void {\n    /* v8 ignore next -- the seam unregisters this provider before disposal; direct in-flight calls\n       exercise the post-await check instead. */\n    if (this.isDisposed()) throw new LspError('lsp-stdio provider is disposed', 'LSP_DISPOSED')\n    if (signal?.aborted) throw abortError(signal)\n  }\n\n  /** Fuse caller cancellation with provider disposal for every filesystem and protocol await. */\n  private querySignal(signal?: AbortSignal): AbortSignal {\n    return signal === undefined\n      ? this.lifetime.signal\n      : AbortSignal.any([signal, this.lifetime.signal])\n  }\n\n  async query(request: LspProviderQuery, signal?: AbortSignal): Promise<LspQueryResult> {\n    // Honor an already-aborted signal before provider I/O so a canceled request never starts a server.\n    this.assertActive(signal)\n    const querySignal = this.querySignal(signal)\n    const workspaceResult = canonicalizeWorkspace(this.fs, request.workspaceRoot, querySignal)\n    const workspaceLookup = workspaceResult.then(() => undefined, () => undefined)\n    this.workspaceLookups.add(workspaceLookup)\n    let workspace: HostWorkspace","sourceCodeStart":231,"sourceCodeEnd":267,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/lsp/lsp-stdio/src/index.ts#L231-L267","documentation":"Error \"lsp-stdio provider is disposed\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/lsp/lsp-stdio/src/index.ts:249 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Do not use the lsp-stdio provider after it is disposed; start a new session."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"b150a551b8d465e31e418e1b2eaf5e79bbb7d28e","analyzedAt":"2026-08-24T18:12:29.105Z","schemaVersion":2},"datasetVersion":"2026-08-24T22:17:12.610Z"}