{"record":{"id":"a2e12c8df75681eb","repo":"deepseek-ai/deepseek-harness","slug":"lsp-unsupported-operation","errorCode":"LSP_UNSUPPORTED_OPERATION","errorMessage":"server does not support ${request.operation}","messagePattern":"server does not support (.+?)","errorType":"exception","errorClass":"LspError","httpStatus":null,"severity":"error","filePath":"packages/lsp/lsp-stdio/src/instance.ts","lineNumber":147,"sourceCode":"    /* v8 ignore next -- the abortable queue wait rejects a pre-aborted signal before runQuery; this is a belt-and-suspenders guard. */\n    if (signal?.aborted) throw abortError(signal)\n    // Observe abort during the handshake wait, and never pool a poisoned instance: if the wait ends\n    // in failure — an abort on a still-pending handshake, OR `initialize` rejecting (utf-8\n    // negotiation, malformed result) without the process exiting — tear the instance down so a\n    // permanently-rejecting/pending `ready` can't make every later query for this workspace fail.\n    try {\n      await abortable(this.ready, signal)\n    } catch (error) {\n      if (!this.dead) {\n        await this.startTeardown()\n      }\n      throw error\n    }\n    const capabilities = this.capabilities\n    /* v8 ignore next -- `ready` resolves only after capabilities are set, else it rejects above; defensive. */\n    if (capabilities === undefined) throw new Error('LSP instance is not initialized')\n    if (!supportsOperation(capabilities, request.operation)) {\n      throw new LspError(`server does not support ${request.operation}`, 'LSP_UNSUPPORTED_OPERATION')\n    }\n    if (!supportsTransientOpen(capabilities.textDocumentSync)) {\n      throw new LspError('server does not support the transient textDocument/didOpen this host requires', 'LSP_UNSUPPORTED_OPERATION')\n    }\n\n    const uri = source.fileUrl\n    let opened = false\n    try {\n      /* v8 ignore next -- guards an abort landing between the ready wait and didOpen; not deterministically reproducible. */\n      if (signal?.aborted) throw abortError(signal)\n      try {\n        await abortable(this.connection.notify('textDocument/didOpen', {\n          textDocument: { uri, languageId: request.languageId, version: 1, text: source.text },\n        }), signal)\n      } catch (error) {\n        // A canceled backpressured write or failed stdin leaves the protocol stream unusable before\n        // `opened` can arm the didClose cleanup. Teardown here makes the pool evict the instance.\n        await this.startTeardown()","sourceCodeStart":129,"sourceCodeEnd":165,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/lsp/lsp-stdio/src/instance.ts#L129-L165","documentation":"Error \"server does not support ${request.operation}\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/lsp/lsp-stdio/src/instance.ts:147 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Choose an operation the server supports, or use a server that implements the operation."],"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"}