{"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/290d5ab72cc1102813fbc0406fb186ceadabc340/src/mono/browser/runtime/loader/polyfills.ts#L42-L78","documentation":"Thrown by detect_features_and_polyfill when running under NodeJS and the major version of process.versions.node is less than 14. The .NET WASM runtime requires NodeJS 14 or newer.","triggerScenarios":"Produced during runtime boot when ENVIRONMENT_IS_NODE is true and parseInt(process.versions.node) < 14.","commonSituations":"Running tests or a host script under an old NodeJS (10/12); CI pinned to an old Node image; a developer machine with an outdated global Node install.","solutions":["Upgrade NodeJS to version 14 or newer (18+ recommended for native fetch support).","Use a Node version manager (nvm/fnm/volta) to select a compatible version for the project.","Pin a >=14 Node version in CI and in package.json engines."],"exampleFix":"// before: package.json allowing old node\n// \"engines\": { \"node\": \">=10\" }\n\n// after\n// \"engines\": { \"node\": \">=18\" }\n// and upgrade the installed runtime:\n// nvm install 18 && nvm use 18","handlingStrategy":"validation","validationCode":"const major = Number(process.versions.node.split('.')[0]);\nif (major < 14) { /* upgrade Node before continuing */ }","typeGuard":"function nodeVersionOk(): boolean {\n  return typeof process !== 'undefined' && Number(process.versions.node.split('.')[0]) >= 14;\n}","tryCatchPattern":null,"preventionTips":["Declare \"engines\": { \"node\": \">=18\" } in package.json.","Use a Node version manager to enforce a minimum in CI and locally.","Fail fast at the top of your entry script if Node is too old."],"tags":["node","environment","startup","version"],"analyzedSha":"290d5ab72cc1102813fbc0406fb186ceadabc340","analyzedAt":"2026-08-06T19:57:01.276Z","schemaVersion":2},"datasetVersion":"2026-08-06T23:17:07.152Z"}