{"record":{"id":"016cacb7b81522c9","repo":"deepseek-ai/deepseek-harness","slug":"session-prompt-returned-no-message-id-json-stri","errorCode":null,"errorMessage":"session/prompt returned no message id: ${JSON.stringify(result)}","messagePattern":"session/prompt returned no message id: (.+?)","errorType":"exception","errorClass":"SdkProtocolError","httpStatus":null,"severity":"error","filePath":"packages/sdk/client/src/client.ts","lineNumber":287,"sourceCode":"    const result = await this.request('initialize', { ...params })\n    if (!isRecord(result) || !isRecord(result.serverInfo)\n      || typeof result.serverInfo.name !== 'string' || typeof result.serverInfo.version !== 'string') {\n      throw new SdkProtocolError(`initialize returned no server identity: ${JSON.stringify(result)}`)\n    }\n    return { serverInfo: { name: result.serverInfo.name, version: result.serverInfo.version } }\n  }\n\n  /**\n   * Queue one prompt and return its durable inbox identity.\n   * @param sessionId - target session; an unknown id creates it.\n   * @param contentBlocks - the user message, sent verbatim.\n   * @returns the queued message id.\n   */\n  async prompt(sessionId: string, contentBlocks: ContentBlock[]): Promise<string> {\n    const params: SessionPromptParams = { sessionId, contentBlocks }\n    const result = await this.request('session/prompt', { ...params })\n    if (!isRecord(result) || typeof result.messageId !== 'string') {\n      throw new SdkProtocolError(`session/prompt returned no message id: ${JSON.stringify(result)}`)\n    }\n    return result.messageId\n  }\n\n  /**\n   * Send one JSON-RPC request and await its result.\n   * @param method - the wire method name.\n   * @param params - the params object; omitted params send `{}`.\n   * @param timeoutMs - per-call override of {@link HarnessClientOptions.requestTimeoutMs}.\n   * @returns the raw result; rejects with {@link JsonRpcResponseError} on a\n   * protocol error response, {@link RequestTimeoutError} on timeout, and\n   * {@link TransportClosedError} when the runtime is gone.\n   */\n  async request(method: string, params?: object, timeoutMs?: number): Promise<unknown> {\n    this.start()\n    // A dead runtime cannot answer; fail with process context instead of\n    // writing into a destroyed pipe and hanging until the timeout.\n    if (this.exitCode !== undefined || this.spawnError !== undefined) {","sourceCodeStart":269,"sourceCodeEnd":305,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/sdk/client/src/client.ts#L269-L305","documentation":"Error \"session/prompt returned no message id: ${JSON.stringify(result)}\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/sdk/client/src/client.ts:287 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the server session/prompt implementation returns a message id; align SDK and server versions."],"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"}