{"record":{"id":"e1ebe6310ae3e80f","repo":"deepseek-ai/deepseek-harness","slug":"binname-cannot-resolve-profile-bundle-json-s","errorCode":null,"errorMessage":"${binName}: cannot resolve profile bundle ${JSON.stringify(packageName)} from the dsh installation or ${profileDir}; run 'dsh plugin --profile ${basename(profileDir)} install' if its dependency is not installed","messagePattern":"(.+?): cannot resolve profile bundle (.+?) from the dsh installation or (.+?); run 'dsh plugin --profile (.+?) install' if its dependency is not installed","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/boot/app-boot/src/profile.ts","lineNumber":351,"sourceCode":" * Resolve one bundle package's directory: installation anchor first, then the\n * profile directory. The installation-first order is the contract that\n * `@deepseek-ai/dsh-base` (and every other in-box bundle) always comes from\n * the same installation as the running dsh, never from a profile-local copy.\n * Resolution does not require the package to export `./package.json`.\n * @param binName - the diagnostic prefix on the thrown error.\n * @param packageName - the bundle's package name from `dsh.profile.bundles`.\n * @param installAnchor - absolute path of a file inside the dsh app package (its package.json).\n * @param profileDir - the profile directory (second anchor).\n * @returns the bundle package's absolute directory.\n */\nexport function resolveBundleDir(\n  binName: string, packageName: string, installAnchor: string, profileDir: string,\n): string {\n  for (const anchor of [installAnchor, join(profileDir, 'package.json')]) {\n    const dir = packageDirFromAnchor(anchor, packageName)\n    if (dir !== undefined) return dir\n  }\n  throw new Error(\n    `${binName}: cannot resolve profile bundle ${JSON.stringify(packageName)} from the dsh installation or ${profileDir}; `\n    + `run 'dsh plugin --profile ${basename(profileDir)} install' if its dependency is not installed`,\n  )\n}\n\n/**\n * Load a profile: resolve every `dsh.profile.bundles` entry to its patch\n * layer and parse the profile's own patch file. A listed bundle without a\n * `dsh.bundle` manifest fails loud — naming a bundle-less package as a layer\n * is a misconfiguration, not \"no patches\".\n * @param binName - the diagnostic prefix on thrown errors.\n * @param name - the profile name.\n * @param installAnchor - absolute path of the dsh app's package.json (first resolution anchor).\n * @param home - the Harness home; defaults to {@link resolveDshHome}.\n * @param options - `userLayer: false` skips reading `cordis.patch.yml`, so a\n * bundles-only consumer (`--dump-default-config`, a recovery diagnostic)\n * cannot fail on a broken user layer.\n * @returns the loaded profile (empty `patches` when the user layer is skipped).","sourceCodeStart":333,"sourceCodeEnd":369,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/boot/app-boot/src/profile.ts#L333-L369","documentation":"Error \"${binName}: cannot resolve profile bundle ${JSON.stringify(packageName)} from the dsh installation or ${profileDir}; run 'dsh plugin --profile ${basename(profileDir)} install' if its dependency is not installed\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/boot/app-boot/src/profile.ts:351 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Run dsh plugin --profile <name> install so the profile bundle dependency is installed."],"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"}