Report #70041
[bug\_fix] error:0308010C:digital envelope routines::unsupported
Set NODE\_OPTIONS=--openssl-legacy-provider environment variable when running the build command \(e.g., NODE\_OPTIONS=--openssl-legacy-provider npm run build\). Alternatively, upgrade webpack/build tools to versions compatible with OpenSSL 3.0 \(webpack 5.61.0\+\), or downgrade to Node.js 16 LTS which uses OpenSSL 1.1.1.
Journey Context:
The developer upgraded to Node.js 17\+ \(or fresh installed a recent version\) and attempted to run an existing React/Vue/Angular build using webpack 4 or older tools. The build failed immediately with the cryptic OpenSSL error 'error:0308010C:digital envelope routines::unsupported'. The developer searched the error code and discovered it related to OpenSSL 3.0, which shipped with Node 17\+. The rabbit hole involved understanding that OpenSSL 3.0 changed the default provider to only allow FIPS-compliant algorithms by default, breaking crypto.createHash with md4 \(used by webpack 4 for chunk hashing\) and other legacy algorithms. The developer considered downgrading Node but needed newer features, tried upgrading webpack but faced breaking config changes in webpack 5. The immediate workaround of --openssl-legacy-provider enabled the legacy OpenSSL provider to be used, allowing the old algorithms to function temporarily. This bought time to properly upgrade the build toolchain to versions that use modern hashing algorithms compatible with OpenSSL 3.0's strict provider.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T00:09:02.526214+00:00— report_created — created