{"record":{"id":"be0bcceeadfd8fbb","repo":"Unitech/pm2","slug":"pm2-cannot-run-on-bun-version-1-1-25-cluster-su","errorCode":null,"errorMessage":"PM2 cannot run on Bun version < 1.1.25 (cluster support)","messagePattern":"PM2 cannot run on Bun version < 1\\.1\\.25 \\(cluster support\\)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"critical","filePath":"lib/binaries/CLI.js","lineNumber":21,"sourceCode":"process.env.PM2_USAGE = 'CLI';\n\nvar cst          = require('../../constants.js');\n\nvar commander    = require('commander');\nvar chalk        = require('ansis');\nvar forEachLimit = require('async/forEachLimit');\n\nvar debug        = require('debug')('pm2:cli');\nvar PM2          = require('../API.js');\nvar pkg          = require('../../package.json');\nvar tabtab       = require('../completion.js');\nvar Common       = require('../Common.js');\nvar PM2ioHandler = require('../API/pm2-plus/PM2IO');\n\nvar semver = require('semver')\n\nif (cst.IS_BUN === true && semver.lt(process.versions.bun, '1.1.25')) {\n  throw new Error('PM2 cannot run on Bun version < 1.1.25 (cluster support)')\n}\n\nCommon.determineSilentCLI();\nCommon.printVersion();\n\nvar pm2 = new PM2();\n\nPM2ioHandler.usePM2Client(pm2)\n\ncommander.version(pkg.version)\n  .option('-v --version', 'print pm2 version')\n  .option('-s --silent', 'hide all messages', false)\n  .option('--ext <extensions>', 'watch only this file extensions')\n  .option('-n --name <name>', 'set a name for the process in the process list')\n  .option('-m --mini-list', 'display a compacted list without formatting')\n  .option('--interpreter <interpreter>', 'set a specific interpreter to use for executing app, default: node')\n  .option('--interpreter-args <arguments>', 'set arguments to pass to the interpreter (alias of --node-args)')\n  .option('--node-args <node_args>', 'space delimited arguments to pass to node')","sourceCodeStart":3,"sourceCodeEnd":39,"githubUrl":"https://github.com/Unitech/pm2/blob/31adee8048dbbc1ee36a7df7cdbcaca2559708df/lib/binaries/CLI.js#L3-L39","documentation":"PM2 relies on Bun's cluster support, which only became usable in Bun 1.1.25. At CLI load time it checks the Bun version via semver.lt and aborts immediately on older Bun, because cluster mode would otherwise silently malfunction.","triggerScenarios":"Launching the PM2 CLI under a Bun runtime older than 1.1.25 (e.g. `bun pm2 ...` or the pm2 bin resolving to bun).","commonSituations":"CI pinned to an older Bun; a system-wide bun that hasn't been upgraded; an image shipping an outdated bun.","solutions":["Upgrade Bun to >= 1.1.25 (`bun upgrade`).","Run PM2 under Node.js instead of Bun if you cannot upgrade Bun."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"const semver = require('semver');\nif (process.versions.bun && semver.lt(process.versions.bun, '1.1.25')) {\n  throw new Error('Upgrade Bun to >=1.1.25 before running PM2, or run under Node.js');\n}","typeGuard":"const bunOkForPm2 = () => !process.versions.bun ||\n  require('semver').gte(process.versions.bun, '1.1.25');","tryCatchPattern":null,"preventionTips":["Pin Bun to >=1.1.25 in CI and base images.","Prefer running PM2 under Node.js unless you specifically need Bun."],"tags":["bun","runtime","version-check"],"backgroundTag":null,"analyzedSha":"31adee8048dbbc1ee36a7df7cdbcaca2559708df","analyzedAt":"2026-08-13T03:49:51.765Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}