{"record":{"id":"c72100cb6914e134","repo":"yarnpkg/yarn","slug":"invalidversionargument","errorCode":null,"errorMessage":"invalidVersionArgument","messagePattern":"invalidVersionArgument","errorType":"exception","errorClass":"MessageError","httpStatus":null,"severity":"error","filePath":"src/cli/commands/version.js","lineNumber":59,"sourceCode":"export async function setVersion(\n  config: Config,\n  reporter: Reporter,\n  flags: Object,\n  args: Array<string>,\n  required: boolean,\n): Promise<() => Promise<void>> {\n  const pkg = await config.readRootManifest();\n  const pkgLoc = pkg._loc;\n  const scripts = map();\n  let newVersion = flags.newVersion;\n  let identifier = undefined;\n  if (flags.preid) {\n    identifier = flags.preid;\n  }\n  invariant(pkgLoc, 'expected package location');\n\n  if (args.length && !newVersion) {\n    throw new MessageError(reporter.lang('invalidVersionArgument', NEW_VERSION_FLAG));\n  }\n\n  function runLifecycle(lifecycle: string): Promise<void> {\n    if (scripts[lifecycle]) {\n      return execCommand({stage: lifecycle, config, cmd: scripts[lifecycle], cwd: config.cwd, isInteractive: true});\n    }\n\n    return Promise.resolve();\n  }\n\n  function isCommitHooksDisabled(): boolean {\n    return flags.commitHooks === false || config.getOption('version-commit-hooks') === false;\n  }\n\n  if (pkg.scripts) {\n    // inherit `scripts` from manifest\n    Object.assign(scripts, pkg.scripts);\n  }","sourceCodeStart":41,"sourceCodeEnd":77,"githubUrl":"https://github.com/yarnpkg/yarn/blob/c2dda503f3759b5be5f0e24ecd9cf5c97a540147/src/cli/commands/version.js#L41-L77","documentation":"Thrown by 'yarn version' when positional args are present but the --new-version flag is not set. In this command, positional args are only meaningful alongside an explicit --new-version value; passing bare args is treated as a misuse.","triggerScenarios":"Running 'yarn version <something>' (any positional arg) without '--new-version <value>', triggering the (args.length && !newVersion) guard.","commonSituations":"User assumes 'yarn version patch' or 'yarn version 1.2.3' works like other tools; confusion between bump flags (--patch/--minor/--major) and positional input.","solutions":["Use the bump flags: 'yarn version --patch' (or --minor/--major/--prepatch/--preminor/--premajor).","Set an explicit version: 'yarn version --new-version 1.2.3'.","Remove any stray positional arguments."],"exampleFix":"# before\n$ yarn version patch\n# after\n$ yarn version --patch","handlingStrategy":"validation","validationCode":"if (args.length > 0 && !flags.newVersion) {\n  throw new Error(\"Positional args are only valid with '--new-version <value>'; use bump flags like --patch instead.\");\n}","typeGuard":"function argsAlignWithFlags(args: string[], flags: Object): boolean {\n  return args.length === 0 || Boolean(flags.newVersion);\n}","tryCatchPattern":null,"preventionTips":["Prefer bump flags (--patch/--minor/--major) over positional input.","Document 'yarn version' usage in the project's release script.","Validate the intended invocation in a pre-release CI step."],"tags":["cli-args","semver","validation"],"backgroundTag":null,"analyzedSha":"c2dda503f3759b5be5f0e24ecd9cf5c97a540147","analyzedAt":"2026-08-13T04:17:06.305Z","schemaVersion":2},"datasetVersion":"2026-08-13T09:17:06.757Z"}