{"record":{"id":"b48c4cbc1108a600","repo":"deepseek-ai/deepseek-harness","slug":"message-to-replace-something-an-earlier-dynam","errorCode":null,"errorMessage":"${message} — to REPLACE something an earlier dynamic package registered, first cordis_stop that package's id (find it with cordis_runtime_inspect what:\"temporary\"), then run the new version.","messagePattern":"(.+?) — to REPLACE something an earlier dynamic package registered, first cordis_stop that package's id \\(find it with cordis_runtime_inspect what:\"temporary\"\\), then run the new version\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/extensions/cordis-host-runner/src/lifecycle.ts","lineNumber":37,"sourceCode":" * @param reportGuardFailure - reports post-activation Host guard rejections to the owning Agent.\n * @returns the settled child fiber (possibly pending on unsatisfied `inject`).\n */\nexport async function startHostHalf(\n  group: Fiber,\n  plugin: Plugin,\n  reportGuardFailure: (error: Error) => void,\n): Promise<Fiber> {\n  await group.await()\n  const fiber = group.ctx.plugin(guardedPlugin(plugin, reportGuardFailure))\n  try {\n    await fiber.await()\n  } catch (error) {\n    await fiber.dispose()\n    const message = error instanceof Error ? error.message : String(error)\n    // The commonest startup collision is running a NEW version of a package\n    // while the old run still holds the name — teach the replace recipe.\n    if (message.includes('already registered')) {\n      throw new Error(\n        `${message} — to REPLACE something an earlier dynamic package registered, first cordis_stop that package's id `\n        + '(find it with cordis_runtime_inspect what:\"temporary\"), then run the new version.',\n      )\n    }\n    throw error instanceof Error ? error : new Error(message)\n  }\n  return fiber\n}\n\n/**\n * The services a fiber declared in `inject` that do not exist yet — a settled\n * fiber that is not active is waiting on exactly these (legal cordis\n * semantics: it activates when the service appears).\n * @param ctx - the context to resolve service existence against.\n * @param fiber - the host-half fiber whose `inject` declarations are checked.\n * @returns the missing service names, in declaration order.\n */\nexport function missingServices(ctx: Context, fiber: Fiber): string[] {","sourceCodeStart":19,"sourceCodeEnd":55,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/extensions/cordis-host-runner/src/lifecycle.ts#L19-L55","documentation":"Error \"${message} — to REPLACE something an earlier dynamic package registered, first cordis_stop that package's id (find it with cordis_runtime_inspect what:\"temporary\"), then run the new version.\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/extensions/cordis-host-runner/src/lifecycle.ts:37 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"}