If you use Node tooling on Apple Silicon and see:
error:0308010C:digital envelope routines::unsupported
it is usually an OpenSSL compatibility mismatch (often with older Webpack stacks and newer Node).
Why this happens
Node 17+ moved to OpenSSL 3, and some older dependencies still expect legacy OpenSSL behavior.
This usually appears during build commands like:
npm run buildnpm run dev- older CRA/Webpack setups
Quick workaround command
For temporary local fix:
export NODE_OPTIONS=--openssl-legacy-provider
npm run build
This enables legacy OpenSSL provider for that shell session.
Add to package.json scripts
If your team needs a quick shared fix:
{
"scripts": {
"build": "NODE_OPTIONS=--openssl-legacy-provider webpack --mode production"
}
}
For cross-platform teams, consider using cross-env.
Better long-term fix
- upgrade Webpack/react-scripts/tooling packages
- use a Node LTS version compatible with your stack
- remove legacy provider flag once dependencies are updated
Short-term flag is okay, but dependency upgrade is the proper solution.
Check your Node version
node -v
If you are on a very new Node release with older frontend tooling, this error is more likely.