{"record":{"id":"f7f3fbe9940ccbb6","repo":"dotnet/runtime","slug":"nodejs-at-process-execpath-has-too-low-versio","errorCode":null,"errorMessage":"NodeJS at '${process.execPath}' has too low version '${process.versions.node}', please use at least ${minNodeVersion}.","messagePattern":"NodeJS at '(.+?)' has too low version '(.+?)', please use at least (.+?)\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/mono/browser/runtime/loader/polyfills.ts","lineNumber":60,"sourceCode":"                const str = String(input).replace(/=+$/, \"\");\n                let output = \"\";\n                for (let bc = 0, bs = 0, i = 0; i < str.length; i++) {\n                    const c = b64.indexOf(str.charAt(i));\n                    if (c === -1) continue;\n                    bs = bc % 4 ? bs * 64 + c : c;\n                    if (bc++ % 4) output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6)));\n                }\n                return output;\n            };\n        }\n    }\n    if (ENVIRONMENT_IS_NODE) {\n        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n        // @ts-ignore:\n        const process = await import(/*! webpackIgnore: true */\"process\");\n        const minNodeVersion = 14;\n        if (process.versions.node.split(\".\")[0] < minNodeVersion) {\n            throw new Error(`NodeJS at '${process.execPath}' has too low version '${process.versions.node}', please use at least ${minNodeVersion}.`);\n        }\n    }\n\n    const scriptUrlQuery = /*! webpackIgnore: true */import.meta.url;\n    const queryIndex = scriptUrlQuery.indexOf(\"?\");\n    if (queryIndex > 0) {\n        loaderHelpers.modulesUniqueQuery = scriptUrlQuery.substring(queryIndex);\n    }\n    loaderHelpers.scriptUrl = normalizeFileUrl(scriptUrlQuery);\n    loaderHelpers.scriptDirectory = normalizeDirectoryUrl(loaderHelpers.scriptUrl);\n    loaderHelpers.locateFile = (path) => {\n        if (\"URL\" in globalThis && globalThis.URL !== (URLPolyfill as any)) {\n            return new URL(path, loaderHelpers.scriptDirectory).toString();\n        }\n\n        if (isPathAbsolute(path)) return path;\n        return loaderHelpers.scriptDirectory + path;\n    };","sourceCodeStart":42,"sourceCodeEnd":78,"githubUrl":"https://github.com/dotnet/runtime/blob/60108ba66eb7d1d12f595480091b4ad80a24b172/src/mono/browser/runtime/loader/polyfills.ts#L42-L78","documentation":"Thrown by detect_features_and_polyfill in polyfills.ts when running under NodeJS and process.versions.node (major) is below 14. The runtime relies on NodeJS APIs that exist only in Node 14+; older versions are rejected outright during environment detection.","triggerScenarios":"Running the dotnet wasm runtime under NodeJS 12 or older; a CI image pinned to an old Node version; a host shell that ships an outdated node binary.","commonSituations":"Legacy CI runners; corporate environments stuck on Node 12; misreporting node version in an embedded JS engine that mimics process.versions.","solutions":["Upgrade to NodeJS 14 or newer (18+ recommended for native fetch).","Update the CI Docker image / runner to a current Node LTS.","If you cannot upgrade Node, this runtime is not supported there."],"exampleFix":"# before: node 12\nnode --version # v12.x\n# after: upgrade to a supported LTS\nnvm install 18 && nvm use 18","handlingStrategy":"validation","validationCode":"// before booting the runtime under Node\nconst [major] = process.versions.node.split('.').map(Number);\nif (major < 14) throw new Error(`Node ${process.versions.node} too old; need >= 14`);","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pin CI/local Node to an LTS >= 14 (18+ recommended).","Document the minimum Node version in your README.","Fail fast in your bootstrap script with a clearer message than the runtime's."],"tags":["node","version","compatibility","startup"],"backgroundTag":null,"analyzedSha":"60108ba66eb7d1d12f595480091b4ad80a24b172","analyzedAt":"2026-08-10T18:54:11.478Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}