{"record":{"id":"d12c904c0e75d865","repo":"deepseek-ai/deepseek-harness","slug":"binname-profile-manifest-path-must-hold-a-j","errorCode":null,"errorMessage":"${binName}: profile manifest ${path} must hold a JSON object","messagePattern":"(.+?): profile manifest (.+?) must hold a JSON object","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/boot/app-boot/src/profile.ts","lineNumber":274,"sourceCode":"\n/**\n * Read a profile's manifest.\n * @param binName - the diagnostic prefix on the thrown error.\n * @param dir - the profile directory.\n * @returns the parsed manifest.\n */\nexport function readProfileManifest(binName: string, dir: string): ProfileManifest {\n  const path = join(dir, 'package.json')\n  let raw: string\n  try {\n    raw = readFileSync(path, 'utf8')\n  } catch (error) {\n    throw new Error(`${binName}: failed to read profile manifest ${path}: ${String(error)}`)\n  }\n  // The field checks below validate the file data before trusting the parse type.\n  const parsed = JSON.parse(raw) as ProfileManifest | null\n  if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {\n    throw new Error(`${binName}: profile manifest ${path} must hold a JSON object`)\n  }\n  return parsed\n}\n\n/**\n * Write a profile's manifest back (2-space JSON, trailing newline).\n * @param dir - the profile directory.\n * @param manifest - the manifest value to persist.\n */\nexport function writeProfileManifest(dir: string, manifest: ProfileManifest): void {\n  writeFileSync(join(dir, 'package.json'), JSON.stringify(manifest, undefined, 2) + '\\n')\n}\n\n/** Return whether two bundle lists have the same values in the same order. */\nfunction sameBundles(left: readonly string[], right: readonly string[]): boolean {\n  return left.length === right.length && left.every((value, index) => value === right[index])\n}\n","sourceCodeStart":256,"sourceCodeEnd":292,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/boot/app-boot/src/profile.ts#L256-L292","documentation":"Error \"${binName}: profile manifest ${path} must hold a JSON object\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/boot/app-boot/src/profile.ts:274 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Make the profile manifest a JSON object."],"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"}