deepseek-ai/deepseek-harness · error · Error

host.call("${method}") on ${pluginId} failed inside the host

Error message

host.call("${method}") on ${pluginId} failed inside the host handler: ${result.message}

What it means

Error "host.call("${method}") on ${pluginId} failed inside the host handler: ${result.message}" thrown in deepseek-ai/deepseek-harness.

Source

Thrown at packages/extensions/cordis-client-runner/src/client/index.ts:223

  const runner = new DynamicCordisPackageRunner({
    ctx,
    loader: ctx.loader,
    modules: ctx.get('modules') as ClientModuleSystem,
    slots: ctx.get('slots') as SlotRegistry,
    invoke: async (pluginId, pluginRunId, method, args) => {
      // Model-authored arguments reach this boundary untyped; the namespace's
      // generated codec is what validates them as JSON, and its rejection is a
      // bare field name — this is the only place that still knows which call it
      // belonged to, so the teaching has to be added here.
      const answered = await ctx.remote.dynamicCordisRunner.invoke(pluginId, pluginRunId, method, args as JsonValue)
        .catch((error: unknown) => { throw new Error(wireFailure(pluginId, method, error)) })
      // Two failure layers, and they teach different things: the carrier's error
      // branch means the call never reached the host half, while the namespace's
      // own `ok: false` is that half answering with a refusal.
      if (!answered.ok) throw new Error(wireFailure(pluginId, method, `${answered.error.code}: ${answered.error.message}`))
      const result = answered.value
      if (result.ok) return result.value
      throw invokeError(pluginId, method, result)
    },
    // Post-settle diagnosis, deliberately fire-and-forget: the run this package
    // belongs to was answered before it ever rendered, so nothing waits on this
    // and a failed report must not turn one crash into two.
    reportRenderFailure: (agentId, pluginId, pluginRunId, failure) => {
      void ctx.remote.dynamicCordisRunner.reportRenderFailure(agentId, pluginId, pluginRunId, failure).then((result) => {
        if (!result.ok) {
          console.error(`[cordis-client-runner] reporting a render failure of ${pluginId} failed:`, result.error)
        }
      }, (error: unknown) => {
        console.error(`[cordis-client-runner] reporting a render failure of ${pluginId} failed:`, error)
      })
    },
    reportGuardFailure: (agentId, pluginId, pluginRunId, failure) => {
      void ctx.remote.dynamicCordisRunner.reportClientGuardFailure(agentId, pluginId, pluginRunId, failure).then((result) => {
        if (!result.ok) {
          console.error(`[cordis-client-runner] reporting a guard failure of ${pluginId} failed:`, result.error)
        }

View on GitHub (pinned to b150a551b8)

Solutions

  1. Fix the plugin host handler for the named method and reload the plugin.

When it happens

Trigger: Thrown at packages/extensions/cordis-client-runner/src/client/index.ts:223 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of deepseek-ai/deepseek-harness@b150a551b8 (2026-08-24). Data as JSON: /api/errors/93a31b1eacee4dd8. Report an issue: GitHub.