{"record":{"id":"b9b3c5447cde80c0","repo":"deepseek-ai/deepseek-harness","slug":"host-call-method-on-id-did-not-complete","errorCode":null,"errorMessage":"host.call(\"${method}\") on ${id} did not complete: ${message}\nBoth directions carry JSON only: pass plain JSON data as the argument — or omit it, and the handler receives null — and answer from harness.handle(\"${method}\", fn) with JSON (`return null` when there is nothing to report).","messagePattern":"host\\.call\\(\"(.+?)\"\\) on (.+?) did not complete: (.+?)\nBoth directions carry JSON only: pass plain JSON data as the argument — or omit it, and the handler receives null — and answer from harness\\.handle\\(\"(.+?)\", fn\\) with JSON \\(`return null` when there is nothing to report\\)\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/extensions/cordis-client-runner/src/client/index.ts","lineNumber":216,"sourceCode":"  })\n  provideClientCordisInspect(ctx, inspect)\n  for (const provider of clientInspectProviders(ctx)) {\n    ctx.effect(() => inspect.register(provider), `cordis-client-runner: inspect ${provider.manifest.id}`)\n  }\n  ctx.on('connection/reset', () => { inspect.publish() })\n\n  const runner = new DynamicCordisPackageRunner({\n    ctx,\n    loader: ctx.loader,\n    modules: ctx.get('modules') as ClientModuleSystem,\n    slots: ctx.get('slots') as SlotRegistry,\n    invoke: async (pluginId, pluginRunId, method, args) => {\n      // Model-authored arguments reach this boundary untyped; the namespace's\n      // generated codec is what validates them as JSON, and its rejection is a\n      // bare field name — this is the only place that still knows which call it\n      // belonged to, so the teaching has to be added here.\n      const answered = await ctx.remote.dynamicCordisRunner.invoke(pluginId, pluginRunId, method, args as JsonValue)\n        .catch((error: unknown) => { throw new Error(wireFailure(pluginId, method, error)) })\n      // Two failure layers, and they teach different things: the carrier's error\n      // branch means the call never reached the host half, while the namespace's\n      // own `ok: false` is that half answering with a refusal.\n      if (!answered.ok) throw new Error(wireFailure(pluginId, method, `${answered.error.code}: ${answered.error.message}`))\n      const result = answered.value\n      if (result.ok) return result.value\n      throw invokeError(pluginId, method, result)\n    },\n    // Post-settle diagnosis, deliberately fire-and-forget: the run this package\n    // belongs to was answered before it ever rendered, so nothing waits on this\n    // and a failed report must not turn one crash into two.\n    reportRenderFailure: (agentId, pluginId, pluginRunId, failure) => {\n      void ctx.remote.dynamicCordisRunner.reportRenderFailure(agentId, pluginId, pluginRunId, failure).then((result) => {\n        if (!result.ok) {\n          console.error(`[cordis-client-runner] reporting a render failure of ${pluginId} failed:`, result.error)\n        }\n      }, (error: unknown) => {\n        console.error(`[cordis-client-runner] reporting a render failure of ${pluginId} failed:`, error)","sourceCodeStart":198,"sourceCodeEnd":234,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/extensions/cordis-client-runner/src/client/index.ts#L198-L234","documentation":"Error \"host.call(\"${method}\") on ${id} did not complete: ${message}\nBoth directions carry JSON only: pass plain JSON data as the argument — or omit it, and the handler receives null — and answer from harness.handle(\"${method}\", fn) with JSON (`return null` when there is nothing to report).\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/extensions/cordis-client-runner/src/client/index.ts:216 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"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"}