{"record":{"id":"bc43bf6ad5f9a962","repo":"deepseek-ai/deepseek-harness","slug":"dynamic-plugin-pluginid-has-no-package","errorCode":null,"errorMessage":"dynamic plugin \"${pluginId}\" has no package","messagePattern":"dynamic plugin \"(.+?)\" has no package","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/extensions/cordis-host-runner/src/index.ts","lineNumber":624,"sourceCode":"   * List source-free Plugin summaries owned by one Session.\n   * @param agent - Agent whose Session selects visible Plugins.\n   * @returns one summary per Plugin in creation order.\n   */\n  listPlugins(agent: Agent): DynamicCordisPluginInspection[] {\n    return this.registry.ofSession(agent.id).map(plugin => this.inspectPlugin(agent, plugin.pluginId))\n  }\n\n  /**\n   * Inspect one Plugin without returning Package source.\n   * @param agent - Agent whose Session must own the Plugin.\n   * @param pluginId - stable Plugin identity.\n   * @returns version pointers, latest run, and all Package summaries.\n   */\n  inspectPlugin(agent: Agent, pluginId: CordisDynamicPluginId): DynamicCordisPluginInspection {\n    const plugin = this.owned(agent, pluginId)\n    if (plugin === undefined) throw new Error(missingPluginMessage(pluginId))\n    const reference = this.reference(agent, pluginId)\n    if (reference === undefined) throw new Error(`dynamic plugin \"${pluginId}\" has no package`)\n    return {\n      ...reference,\n      packages: [...plugin.packages.values()].map(definition => ({\n        packageId: definition.packageId,\n        name: definition.name,\n        purpose: definition.purpose,\n        hasHostHalf: definition.hostCode !== undefined,\n        hasClientHalf: definition.clientCode !== undefined,\n      })),\n    }\n  }\n\n  /**\n   * Read one exact immutable Package and its Host and Client source.\n   * @param agent - Agent whose Session must own the Plugin.\n   * @param pluginId - Stable Plugin identity that owns the Package.\n   * @param packageId - Exact immutable Package identity to inspect.\n   * @returns Package metadata, source, and the Plugin's lifecycle pointers.","sourceCodeStart":606,"sourceCodeEnd":642,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/extensions/cordis-host-runner/src/index.ts#L606-L642","documentation":"Error \"dynamic plugin \"${pluginId}\" has no package\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/extensions/cordis-host-runner/src/index.ts:624 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"}