Report #61362
[bug\_fix] error:0308010C:digital envelope routines::unsupported
Upgrade to webpack 5.61.0\+ \(or 4.46.0\+\), or set NODE\_OPTIONS=--openssl-legacy-provider \(Node 17-20\), or downgrade to Node.js 16 LTS \(OpenSSL 1.1.1\)
Journey Context:
You upgrade to Node.js 17 or 18 and your existing React/Vue project \(using webpack 4 or 5 <5.61\) fails to build with 'error:0308010C:digital envelope routines::unsupported'. The error originates from crypto.createHash in webpack's NormalModule plugin, used for caching. Node.js 17\+ ships OpenSSL 3.0, which changed default behavior to disallow legacy algorithms like MD4 \(which webpack 4 used for hash functions\). The error propagates up as an OpenSSL EVP error. Developers often try clearing node\_modules or reinstalling to no avail. The debugging journey involves identifying the Node version \(node -v shows v17\+\) and realizing the breaking change is OpenSSL 3.0. The immediate workaround is setting NODE\_OPTIONS=--openssl-legacy-provider, which re-enables the legacy OpenSSL provider, allowing MD4 to be used temporarily. The permanent fix is upgrading webpack to 5.61.0\+ \(or 4.46.0\+ for webpack 4 legacy\) where they replaced crypto.createHash with a JavaScript hash implementation \(xxhash64\) that doesn't rely on OpenSSL, making it compatible with Node 17\+ natively. Alternatively, using Node 16 LTS avoids OpenSSL 3.0 entirely.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T09:28:59.790606+00:00— report_created — created