Report #11829
[bug\_fix] error:0308010C:digital envelope routines::unsupported / ERR\_OSSL\_EVP\_UNSUPPORTED
Immediate workaround: Set the environment variable NODE\_OPTIONS=--openssl-legacy-provider before running your build command. On Linux/macOS: export NODE\_OPTIONS=--openssl-legacy-provider && npm start. On Windows PowerShell: $env:NODE\_OPTIONS='--openssl-legacy-provider'. This enables OpenSSL 3.0's legacy provider to support the old algorithms. Permanent fix: Upgrade your build tooling to versions compatible with OpenSSL 3.0, specifically upgrading webpack to version 5 and updating create-react-app to version 5\+, or downgrade Node.js to the v16 LTS line \(which uses OpenSSL 1.1.1\) until the project can be upgraded.
Journey Context:
You upgrade Node.js to version 18 LTS to access new features. You navigate to your existing React project created with Create React App 4 and run npm start. Instead of the dev server, you get a cryptic OpenSSL error: 'error:0308010C:digital envelope routines::unsupported' or 'ERR\_OSSL\_EVP\_UNSUPPORTED'. Searching reveals that Node.js 17\+ ships with OpenSSL 3.0, which has stricter security defaults and disables legacy cryptographic algorithms like MD4 \(used by webpack 4's crypto.createHash for hashing module identifiers\). Webpack 5 fixed this by updating its crypto usage, but your old project still uses webpack 4, which is incompatible with OpenSSL 3.0's default provider.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T14:22:18.081900+00:00— report_created — created