Error:0308010c:digital envelope routines::unsupported

Are you getting the error “error:0308010c:digital envelope routines::unsupported“? Yes, you have come to the right place. Today I will show you how you can solve this error.

The “error: error:0308010c:digital envelope routines::unsupported” occurs after Node v17. Node version 17 and later use OpenSSL version 3.0, which has some breaking changes.

[Solved] digital envelope routines::unsupported

To resolve this error, when you run the development server, you should set the ‘NODE_OPTIONS’ to ‘–OpenSSL-legacy-provider.” You should first try these options, Below are the commands to try this solution.

# for Windows Git Bash, macOS or Linux
export NODE_OPTIONS=--openssl-legacy-provider

# for Windows Command Prompt (CMD)
set NODE_OPTIONS=--openssl-legacy-provider

# for Windows PowerShell
$env:NODE_OPTIONS="--openssl-legacy-provider"

# for Docker (Add this line in your Dockerfile)
ENV NODE_OPTIONS="--openssl-legacy-provider"

Make sure to execute the correct command according to the shell type.

You need to set this “–openssl-legacy-provider” as NODE_OPTIONS because after Node V17 you will get this error without set this setting. If settings NODE_OPTIONS solved your problem you don’t need to do other changes.

If you set NODE_OPTIONS but still get this error “error:0308010c:digital envelope routines::unsupported‘, you can try these solutions.

error:0308010c:digital envelope routines::unsupported [Fixed]

You can add ‘–openssl-legacy-provider‘ in your package.json file to solve this error. Your package.json file should contain these lines.

{
  "scripts": {
    "start": "react-scripts start --openssl-legacy-provider",
  }
}

node: –openssl-legacy-provider is not allowed in node_options

When you run the command you may get this error “node: –openssl-legacy-provider is not allowed in node_options“. To solve this problem you need to UNSET the NODE_OPTIONS that you set in the first attempt.

Fixed: Type string undefined is not assignable to type string

Commands to unset NODE_OPTIONS

# for macOS, Linux or Windows Git Bash
unset NODE_OPTIONS

# for Windows CMD (Command Prompt)
set NODE_OPTIONS=

# for Windows PowerShell
[Environment]::SetEnvironmentVariable('NODE_OPTIONS', '', 'User')
[Environment]::SetEnvironmentVariable('NODE_OPTIONS', '', 'Machine')

Now after upsetting the NODE_OPTIONS, you will need to rerun the command to add –openssl-legacy-provider in package.json.

Note: If you are running these commands on Windows, you may get an error – “‘NODE_OPTIONS’ is not recognized as an internal or external command“. To solve this issue you will need to install the package “cross-env“.

# command to install cross-env package
npm install cross-env

You can get this error “error: error:0308010c:digital envelope routines::unsupported” if you have an old or outdated version of react-scripts in your create-react-app project.

Open your terminal and upgrade the react-scripts.

# if you use npm as package installer
npm install react-scripts@latest

# if you use yarn as package installer
yarn add react-scripts@latest

[Solution] error:0308010c:digital envelope routines::unsupported

If you tried all solutions but still getting this error you can downgrade your Node version to solve this problem. You can downgrade to NODE V16 because after Node v16 you will get this error.

Command to Downgrade NODE

You can use “Node Version Manager” to downgrade your node.js

# nvm install 16
# nvm use 16

Conclusion on error:0308010c:digital envelope routines::unsupported

The “error: error:0308010c:digital envelope routines::unsupported” occurs after Node v17. Node version 17 and later use OpenSSL version 3.0 which has some breaking changes. You can solve this error by using the above solutions. If you are still getting this error please let us know in the comments section.

Leave a Reply