Report #16109
[bug\_fix] error:0308010C:digital envelope routines::unsupported / ERR\_OSSL\_EVP\_UNSUPPORTED
Set NODE\_OPTIONS=--openssl-legacy-provider environment variable or upgrade to webpack 5\+, react-scripts 5\+, or equivalent build tools that support OpenSSL 3.0.
Journey Context:
Developer upgrades to Node.js 17\+ \(or uses the latest LTS\) and attempts to run npm start or npm run build on an existing React/Webpack project. The build immediately crashes with "error:0308010C:digital envelope routines::unsupported" or ERR\_OSSL\_EVP\_UNSUPPORTED, often pointing to crypto.createHash in webpack 4 or old react-scripts. Developer searches and finds conflicting advice about downgrading Node.js. Reading the Node.js 17 changelog, they discover Node 17\+ ships with OpenSSL 3.0, which changed default hash algorithms and broke crypto usage in older webpack configurations that relied on legacy crypto APIs. The solutions are: 1\) Set the environment variable NODE\_OPTIONS=--openssl-legacy-provider before running the build, which enables the legacy OpenSSL provider in Node.js, or 2\) Upgrade react-scripts to version 5\+ and webpack to version 5\+, which include fixes to support OpenSSL 3.0 natively. The fix works because it either restores the legacy crypto behavior via the provider flag or updates the tooling to use crypto APIs compatible with OpenSSL 3.0.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T01:50:28.895740+00:00— report_created — created