{"record":{"id":"c2d1f8d63c2e3809","repo":"deepseek-ai/deepseek-harness","slug":"cordis-client-runner-window-moduleloader-is-m","errorCode":null,"errorMessage":"cordis-client-runner: window.__ModuleLoader__ is missing (booted outside the web shell?)","messagePattern":"cordis-client-runner: window\\.__ModuleLoader__ is missing \\(booted outside the web shell\\?\\)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/extensions/cordis-client-runner/src/client/runtime.ts","lineNumber":374,"sourceCode":"    } catch (error) {\n      styles.dispose()\n      return { ok: false, cause: 'evaluate', ...errorDetails(error), error }\n    }\n\n    const pkg: DynamicCordisPackage = {\n      pluginId: half.pluginId,\n      packageId: half.packageId,\n      pluginRunId: half.pluginRunId,\n      name: half.name,\n    }\n    const surface = this.guardedSurface(pkg, half.agentId, plugin, ledger)\n    const moduleId = moduleIdOf(half.pluginId)\n    // Invalidate-then-register keeps re-loading legal: the module table throws\n    // loudly on a duplicate factory registration.\n    this.env.modules.invalidate(moduleId)\n    const sink = (globalThis as ModuleLoaderSink).__ModuleLoader__\n    if (sink === undefined) {\n      throw new Error('cordis-client-runner: window.__ModuleLoader__ is missing (booted outside the web shell?)')\n    }\n    sink.load({ id: moduleId, factory: () => surface })\n\n    const entryId = await this.env.loader.create({ name: moduleId })\n    const fiber = this.env.loader.resolve(entryId).fiber\n    if (fiber === undefined) {\n      await this.teardown(half.pluginId, entryId, styles)\n      return { ok: false, cause: 'module-import', message: 'module import failed (see the browser console)' }\n    }\n    try {\n      await fiber.await()\n    } catch (error) {\n      await this.teardown(half.pluginId, entryId, styles)\n      return { ok: false, cause: 'activate', ...errorDetails(error), error }\n    }\n    // Settled but not active = legal pending on an unsatisfied declaration. The\n    // record is seated only now, so an error mirrored during `apply` cannot\n    // claim the package is already live.","sourceCodeStart":356,"sourceCodeEnd":392,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/extensions/cordis-client-runner/src/client/runtime.ts#L356-L392","documentation":"Error \"cordis-client-runner: window.__ModuleLoader__ is missing (booted outside the web shell?)\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/extensions/cordis-client-runner/src/client/runtime.ts:374 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"}