The full text usually reads Error: error:0308010C:digital envelope routines::unsupported, with the code ERR_OSSL_EVP_UNSUPPORTED. It appears when Node 17 or later runs tooling that asks OpenSSL for the MD4 hash. OpenSSL 3, which newer Node ships with, moved MD4 and other legacy algorithms out of the default provider, so the request fails. The classic trigger is an older webpack (version 4, and the Create React App versions built on it) hashing module content during a build on a modern Node.
npm start on an old Create React App fails the same way as npm run build, because both run webpack.NODE_OPTIONS=--openssl-legacy-provider before the build command restores the legacy algorithms for that process. It works on official Node builds that include the legacy provider; some distro and hardened builds omit it, where the flag itself errors..nvmrc, appropriate for a legacy project in maintenance, not for new work.Is my Node installation broken? No. Node is working as designed; the toolchain is requesting an algorithm OpenSSL 3 no longer offers by default. The mismatch is between the build tool's age and the runtime's age.
Why did it break after a system update? The update brought a newer Node (or a Node built against system OpenSSL 3). The project and its lockfile did not change, the platform under them did.
Will --openssl-legacy-provider work on every machine? No. It requires the legacy provider to be present in the OpenSSL build. Official Node binaries include it; some Linux distribution builds and FIPS configurations do not, and there the only routes are upgrading the toolchain or using an older Node.