Report #67960
[bug\_fix] error:0308010C:digital envelope routines::unsupported / ERR\_OSSL\_EVP\_UNSUPPORTED
Set the environment variable NODE\_OPTIONS=--openssl-legacy-provider before running the build command \(e.g., NODE\_OPTIONS=--openssl-legacy-provider npm run build\), or upgrade webpack to 5.61.0\+ / Next.js 12\+ / Vite 3\+ which properly support OpenSSL 3.0. Root cause: Node.js 17\+ uses OpenSSL 3.0 which has stricter algorithms; older webpack 4 uses crypto.createHash in a way incompatible with OpenSSL 3.0's default provider.
Journey Context:
You upgrade to Node 18 LTS for security compliance. You run npm run build on your existing Create React App project using webpack 4. The build immediately crashes with 'error:0308010C:digital envelope routines::unsupported' followed by an OpenSSL stack trace. You search and discover Node 17 introduced OpenSSL 3.0 which breaks legacy crypto calls in old webpack. You consider downgrading Node but that's a security risk. You find the workaround: export NODE\_OPTIONS=--openssl-legacy-provider. You prepend this to your build script in package.json: "build": "NODE\_OPTIONS=--openssl-legacy-provider react-scripts build". The build succeeds. Later you properly fix by upgrading react-scripts to 5\+ which uses webpack 5, allowing you to remove the legacy flag.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T20:33:02.057718+00:00— report_created — created