{"record":{"id":"1c3267dec0e5f557","repo":"paperclipai/paperclip","slug":"managed-installs-require-node-js-minimum-node-ve","errorCode":null,"errorMessage":"Managed installs require Node.js ${MINIMUM_NODE_VERSION} or newer (found ${process.version}).","messagePattern":"Managed installs require Node\\.js (.+?) or newer \\(found (.+?)\\)\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"cli/src/commands/install.ts","lineNumber":89,"sourceCode":"    for (const section of [\"dependencies\", \"optionalDependencies\", \"peerDependencies\"] as const) {\n      const dependencies = packageJson[section];\n      if (!dependencies || typeof dependencies !== \"object\") continue;\n      for (const dependencyName of Object.keys(dependencies)) {\n        if (dependencyName.startsWith(\"@paperclipai/\")) visit(dependencyName);\n      }\n    }\n    visiting.delete(packageName);\n    visited.add(packageName);\n    ordered.push(entry);\n  };\n\n  visit(\"@paperclipai/server\");\n  return ordered;\n}\n\nfunction assertSupportedNodeVersion(): void {\n  if (!isSupportedNodeVersion(process.versions.node)) {\n    throw new Error(`Managed installs require Node.js ${MINIMUM_NODE_VERSION} or newer (found ${process.version}).`);\n  }\n}\n\nexport function resolveNpmInstallRequest(options: InstallOptions): {\n  spec: string;\n  channel: InstallChannel;\n} {\n  if (options.canary && options.version) throw new Error(\"Choose either --canary or --version, not both.\");\n  if (options.version) {\n    const version = options.version.trim();\n    if (!EXACT_VERSION_PATTERN.test(version)) {\n      throw new Error(`--version requires an exact published version, received '${options.version}'.`);\n    }\n    return { spec: version, channel: \"pinned\" };\n  }\n  return options.canary ? { spec: \"canary\", channel: \"canary\" } : { spec: \"latest\", channel: \"latest\" };\n}\n","sourceCodeStart":71,"sourceCodeEnd":107,"githubUrl":"https://github.com/paperclipai/paperclip/blob/a7e689b3c35347b529cb9f54c9b9a8575a3dcab6/cli/src/commands/install.ts#L71-L107","documentation":"Thrown by assertSupportedNodeVersion(), called as the first step of installCommand (cli/src/commands/install.ts:362). Paperclip's managed installer requires Node.js 24.11.0 or newer (MINIMUM_NODE_VERSION from @paperclipai/shared/node-version); isSupportedNodeVersion() parses process.versions.node as semver and rejects anything older or unparseable. The guard protects the install payload, which depends on Node 24 runtime behavior. The offending process.version is included in the message.","triggerScenarios":"Running `paperclipai install` (installCommand) under Node.js < 24.11.0, or under a runtime whose process.versions.node cannot be parsed (e.g. 'unknown'). Every managed-install entry path hits this guard before any npm/git payload work runs.","commonSituations":"System Node on an LTS line older than 24.11.0 (v20/v22); nvm default pointing at a stale toolchain; CI images pinned to node:20 or node:22; a wrapper script resolving a different `node` from PATH than the interactive shell.","solutions":["Upgrade Node to >= 24.11.0 (e.g. `nvm install 24.11.0 && nvm use 24.11.0`) and retry `paperclipai install`","Check `node --version` in the exact shell/PATH the install runs from (wrappers, CI steps, service definitions)","In CI, bump the base image or setup-node action to Node 24+","If Node cannot be upgraded here, run the CLI from a prebuilt runtime that bundles a supported Node, or defer the managed install"],"exampleFix":"# before\n$ node --version\nv22.23.0\n$ paperclipai install\nError: Managed installs require Node.js 24.11.0 or newer (found v22.23.0).\n\n# after\n$ nvm install 24.11.0 && nvm use 24.11.0\n$ paperclipai install","handlingStrategy":"validation","validationCode":"import { isSupportedNodeVersion, MINIMUM_NODE_VERSION } from '@paperclipai/shared/node-version';\n\nif (!isSupportedNodeVersion(process.versions.node)) {\n  console.error(`Node >= ${MINIMUM_NODE_VERSION} required (found ${process.version}); aborting before install.`);\n  process.exit(1);\n}\nawait installCommand(options);","typeGuard":null,"tryCatchPattern":"Catch in the CLI wrapper and print an upgrade hint (`node --version`, `nvm install 24.11.0`) instead of a stack trace.","preventionTips":["Pin engines.node >= 24.11.0 in wrapper packages so npm warns at install time","Assert `node --version` in CI before invoking paperclipai install","Set the nvm default to a 24.x line so new shells get a supported runtime"],"tags":["node-version","cli","install","environment"],"backgroundTag":"unsupported-node-version","analyzedSha":"a7e689b3c35347b529cb9f54c9b9a8575a3dcab6","analyzedAt":"2026-08-21T17:58:32.592Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}