{"record":{"id":"cc356a2a18a73998","repo":"yarnpkg/yarn","slug":"manifeststringexpected","errorCode":null,"errorMessage":"manifestStringExpected","messagePattern":"manifestStringExpected","errorType":"validation","errorClass":"MessageError","httpStatus":null,"severity":"error","filePath":"src/util/normalize-manifest/validate.js","lineNumber":93,"sourceCode":"  }\n\n  // validate license\n  if (isRoot && !info.private) {\n    if (typeof info.license === 'string') {\n      const license = info.license.replace(/\\*$/g, '');\n      if (!isValidLicense(license)) {\n        warn(reporter.lang('manifestLicenseInvalid'));\n      }\n    } else {\n      warn(reporter.lang('manifestLicenseNone'));\n    }\n  }\n\n  // validate strings\n  for (const key of strings) {\n    const val = info[key];\n    if (val && typeof val !== 'string') {\n      throw new MessageError(reporter.lang('manifestStringExpected', key));\n    }\n  }\n\n  cleanDependencies(info, isRoot, reporter, warn);\n}\n\nexport function cleanDependencies(info: Object, isRoot: boolean, reporter: Reporter, warn: WarnFunction) {\n  // get dependency objects\n  const depTypes = [];\n  for (const type of dependencyKeys) {\n    const deps = info[type];\n    if (!deps || typeof deps !== 'object') {\n      continue;\n    }\n    depTypes.push([type, deps]);\n  }\n\n  // aggregate all non-trivial deps (not '' or '*')","sourceCodeStart":75,"sourceCodeEnd":111,"githubUrl":"https://github.com/yarnpkg/yarn/blob/c2dda503f3759b5be5f0e24ecd9cf5c97a540147/src/util/normalize-manifest/validate.js#L75-L111","documentation":"Error \"manifestStringExpected\" thrown in yarnpkg/yarn.","triggerScenarios":"A manifest field expected to be a string is not a string during normalization validation in src/util/normalize-manifest/validate.js.","commonSituations":"Occurs when package.json fields like 'name', 'version', 'license', or 'bin' entries contain arrays, objects, or numbers instead of strings.","solutions":["The manifest field named in the error must be a string but holds another type (object, array, number, or boolean). Change its value in package.json to a plain string."],"exampleFix":"\"description\": {\"text\": \"...\"} -> \"description\": \"...\"","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c2dda503f3759b5be5f0e24ecd9cf5c97a540147","analyzedAt":"2026-08-13T04:17:06.305Z","schemaVersion":2},"datasetVersion":"2026-08-13T09:17:06.757Z"}