Report #10702
[bug\_fix] error:0308010C:digital envelope routines::unsupported \(ERR\_OSSL\_EVP\_UNSUPPORTED\)
Set environment variable \`NODE\_OPTIONS=--openssl-legacy-provider\` before running the command \(e.g., \`export NODE\_OPTIONS=--openssl-legacy-provider\` on Unix or \`set NODE\_OPTIONS=--openssl-legacy-provider\` on Windows\), or upgrade build tools \(webpack 4→5, etc.\), or downgrade to Node.js 16 LTS which uses OpenSSL 1.1.1.
Journey Context:
You just upgraded to Node.js 18 LTS \(or 17 experimental\) and tried to start your Create React App from 2020. The build crashes immediately with a cryptic OpenSSL error: "error:0308010C:digital envelope routines::unsupported". You search and find that Node 17\+ ships with OpenSSL 3.0, which changed algorithm providers. Your old webpack 4 configuration uses crypto.createHash with settings incompatible with OpenSSL 3.0's default provider. You try reinstalling node\_modules, clearing cache, no luck. You consider downgrading Node, but you want to use Node 18. You find the Node.js documentation mentions \`--openssl-legacy-provider\` which enables the legacy OpenSSL provider. You prepend \`NODE\_OPTIONS=--openssl-legacy-provider\` to your start script. It works. The long-term fix is upgrading to webpack 5 \(which supports OpenSSL 3.0\) or migrating to Vite, but the legacy provider flag unblocks you immediately.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T11:22:11.328352+00:00— report_created — created