Skip to content

react-scripts fails to build project with Node 17 #11562

Description

@aghArdeshir

Describe the bug

we have a CRA app, it used to build with Node 14.x very fine, today I upgrade nodejs to 17.0.0 and it failed. (in both my local machine and the CI-CD machine)

And these were the logs:

> react-scripts build
Creating an optimized production build...
Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:67:19)
    at Object.createHash (node:crypto:130:10)
    at module.exports (/my-project/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/my-project/node_modules/webpack/lib/NormalModule.js:417:16)
    at handleParseError (/my-project/node_modules/webpack/lib/NormalModule.js:471:10)
    at /my-project/node_modules/webpack/lib/NormalModule.js:503:5
    at /my-project/node_modules/webpack/lib/NormalModule.js:358:12
    at /my-project/node_modules/loader-runner/lib/LoaderRunner.js:373:3
    at iterateNormalLoaders (/my-project/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
    at iterateNormalLoaders (/my-project/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
    at /my-project/node_modules/loader-runner/lib/LoaderRunner.js:236:3
    at runSyncOrAsync (/my-project/node_modules/loader-runner/lib/LoaderRunner.js:130:11)
    at iterateNormalLoaders (/my-project/node_modules/loader-runner/lib/LoaderRunner.js:232:2)
    at Array.<anonymous> (/my-project/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
    at Storage.finished (/my-project/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)
    at /my-project/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9
/my-project/node_modules/react-scripts/scripts/build.js:19
  throw err;
  ^
Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:67:19)
    at Object.createHash (node:crypto:130:10)
    at module.exports (/my-project/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/my-project/node_modules/webpack/lib/NormalModule.js:417:16)
    at /my-project/node_modules/webpack/lib/NormalModule.js:452:10
    at /my-project/node_modules/webpack/lib/NormalModule.js:323:13
    at /my-project/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /my-project/node_modules/loader-runner/lib/LoaderRunner.js:233:18
    at context.callback (/my-project/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
    at /my-project/node_modules/babel-loader/lib/index.js:59:103 {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}
Node.js v17.0.0
ERROR: Job failed: exit status 1

Did you try recovering your dependencies?

yes. in both local machine and CI-CD machine I re-installed all the dependencies

Which terms did you search for in User Guide?

I searched Google for error:0308010C:digital envelope routines::unsupported with and without the 0308010C part

Environment

current version of create-react-app: 4.0.3
  running from /home/.npm/_npx/34113/lib/node_modules/create-react-app

  System:
    OS: Linux 5.13 Ubuntu 21.10 21.10 (Impish Indri)
    CPU: (4) x64 Intel(R) Core(TM) i5-4460  CPU @ 3.20GHz
  Binaries:
    Node: 17.0.0 - /usr/bin/node
    Yarn: Not Found
    npm: 8.1.0 - /usr/bin/npm
  Browsers:
    Chrome: 95.0.4638.54
    Firefox: 93.0
  npmPackages:
    react: ^16.13.1 => 16.13.1 
    react-dom: ^16.13.1 => 16.13.1 
    react-scripts: ^4.0.3 => 4.0.3 
  npmGlobalPackages:
    create-react-app: Not Found

Steps to reproduce

(Write your steps here:)

  1. create new react app with create-react-app and node 14
  2. do npm run build to see it builds completely fine
  3. upgrade to node 17 and do npm run build again to see it fail

Expected behavior

to build flawlessly

Actual behavior

The build failed with errors printed above!

Note

I know that it is mostly not related to create-react-app, but another package, maybe webpack or it's dependencies. But as I cannot dig down, I write this issue here so the professionals can track it further.

Thanks

Activity

  1. Gnito commented on Oct 20, 2021

    @Gnito
  2. niels-bosman commented on Oct 20, 2021

    @niels-bosman

    Having the same issue. Node 16.11.1 works but 17.0.0 and 17.0.1 are causing this error.

  3. aghArdeshir commented on Oct 20, 2021

    @aghArdeshir
    Author

    Yes @Gnito that's it I think. So it is probably either Webpack's to update something, or react-scripts' to change some config, right?

  4. trashcoder commented on Oct 22, 2021

    @trashcoder

    in your package.json:
    change this line
    "build": "react-scripts start",
    to
    "build": "react-scripts --openssl-legacy-provider build",

  5. dantman commented on Oct 25, 2021

    @dantman

    in your package.json:
    change this line
    "build": "react-scripts start",
    to
    "build": "react-scripts --openssl-legacy-provider build",

    Doing this results in a bad option: --openssl-legacy-provider error in Node 16. So this isn't a workaround projects can actually use in their scripts unless they have absolute control over the version of Node everyone uses and can prohibit use of LTS versions by anyone.

    The only real fix will likely be the release of CRA v5.

  6. dantman commented on Oct 26, 2021

    @dantman

    The only real fix will likely be the release of CRA v5.

    Actually it seems that this won't necessarily fix the issue alone. WebPack does plan to change the default hash function in WebPack 6 but cannot change it in 4 or 5.

    CRA needs to change the hashFunction and make a release. Though given CRA v4 hasn't received an update since Feb and CRA has other issues with Node 17 (#11565) I presume we'll only get that fix in CRA v5,

  7. niels-bosman commented on Nov 1, 2021

    @niels-bosman

    Could be fixed by #11597

  8. HADMARINE commented on Nov 1, 2021

    @HADMARINE

    Merged #11597 just before, and currently testing on local computer.

  9. dantman commented on Nov 8, 2021

    @dantman

    I tested out the @next version of CRA v5. It seems there may be some more work required in order to make Node 17 work.

    I'm still getting this error but now it's due to CRA v5 still using file-loader. The implication in the WebPack thread on Node 17 is that file-loader is obsolete and the fix to file-loader breaking Node 17 is to not use file-loader because it's no longer supported.

    We may need #11213 before CRA v5 will work on Node 17.

  10. cburk2019 commented on Dec 2, 2021

    @cburk2019

    On MBP w/M1, running Node v17, to run React with npm start I had to change my start script to "start": "react-scripts --openssl-legacy-provider start". But when I try to run npm run deploy, it reads "/opt/homebrew/Cellar/nvm/0.38.0/versions/node/v16.13.0/bin/node: bad option: --openssl-legacy-provider"

    I tried "react-scripts --openssl-legacy-provider build" and it does not work. Switched to Node v16.13.0 and it works as it came upon initialization.

    "start": "react-scripts --openssl-legacy-provider start",
    "build": "react-scripts build",

    Pretty annoying, but hey, I've heard things change all the change in this industry and a few months from now, someone will see this comment and things will be different then as well.

  11. KiraLT commented on Dec 21, 2021

    @KiraLT

    If you need to support both 17 and older NodeJS versions you can use if-node-version to execute different commands for different NodeJS versions:

    {
        "scripts": {
            "build": "if-node-version '>= 17' && react-scripts --openssl-legacy-provider build || react-scripts build",
        }
    }
  12. 10 remaining items

  13. Palinan1985 commented on Sep 13, 2023

    @Palinan1985

    Hell

  14. guychou7 commented on Oct 27, 2023

    @guychou7

    I had the same issue with Node v18.13.0
    Fix step:
    install nvm
    upgrade node version to 20.3.0 via cmd nvm install v20.0.3
    do npm -v must be 9.6.7

    Test again npm run build

  15. Paulk58 commented on Nov 5, 2023

    @Paulk58

    Kinding58 Wallet has been created successfully

  16. Paulk58 commented on Nov 5, 2023

    @Paulk58

    Kinding58 Wallet shall be used for various pi transactions

  17. Paulk58 commented on Nov 5, 2023

    @Paulk58

    It's done

  18. Paulk58 commented on Nov 10, 2023

    @Paulk58

    This is Paulk58 Netface Wallet created on 10th November 2023

  19. Paulk58 commented on Nov 10, 2023

    @Paulk58

    This is Paulk58 Whatsapp wallet re-created on 10 th November 2023

  20. Paulk58 commented on Nov 10, 2023

    @Paulk58

    This is Paulk58 Whatsapp wallet re-created on 10 November 2023

  21. Roberthimmotta commented on Jan 11, 2024

    @Roberthimmotta

    Describe the bug

    we have a CRA app, it used to build with Node 14.x very fine, today I upgrade nodejs to 17.0.0 and it failed. (in both my local machine and the CI-CD machine)

    And these were the logs:

    
    > react-scripts build
    
    Creating an optimized production build...
    
    Error: error:0308010C:digital envelope routines::unsupported
    
        at new Hash (node:internal/crypto/hash:67:19)
    
        at Object.createHash (node:crypto:130:10)
    
        at module.exports (/my-project/node_modules/webpack/lib/util/createHash.js:135:53)
    
        at NormalModule._initBuildHash (/my-project/node_modules/webpack/lib/NormalModule.js:417:16)
    
        at handleParseError (/my-project/node_modules/webpack/lib/NormalModule.js:471:10)
    
        at /my-project/node_modules/webpack/lib/NormalModule.js:503:5
    
        at /my-project/node_modules/webpack/lib/NormalModule.js:358:12
    
        at /my-project/node_modules/loader-runner/lib/LoaderRunner.js:373:3
    
        at iterateNormalLoaders (/my-project/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
    
        at iterateNormalLoaders (/my-project/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
    
        at /my-project/node_modules/loader-runner/lib/LoaderRunner.js:236:3
    
        at runSyncOrAsync (/my-project/node_modules/loader-runner/lib/LoaderRunner.js:130:11)
    
        at iterateNormalLoaders (/my-project/node_modules/loader-runner/lib/LoaderRunner.js:232:2)
    
        at Array.<anonymous> (/my-project/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
    
        at Storage.finished (/my-project/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)
    
        at /my-project/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9
    
    /my-project/node_modules/react-scripts/scripts/build.js:19
    
      throw err;
    
      ^
    
    Error: error:0308010C:digital envelope routines::unsupported
    
        at new Hash (node:internal/crypto/hash:67:19)
    
        at Object.createHash (node:crypto:130:10)
    
        at module.exports (/my-project/node_modules/webpack/lib/util/createHash.js:135:53)
    
        at NormalModule._initBuildHash (/my-project/node_modules/webpack/lib/NormalModule.js:417:16)
    
        at /my-project/node_modules/webpack/lib/NormalModule.js:452:10
    
        at /my-project/node_modules/webpack/lib/NormalModule.js:323:13
    
        at /my-project/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    
        at /my-project/node_modules/loader-runner/lib/LoaderRunner.js:233:18
    
        at context.callback (/my-project/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
    
        at /my-project/node_modules/babel-loader/lib/index.js:59:103 {
    
      opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
    
      library: 'digital envelope routines',
    
      reason: 'unsupported',
    
      code: 'ERR_OSSL_EVP_UNSUPPORTED'
    
    }
    
    Node.js v17.0.0
    
    ERROR: Job failed: exit status 1
    
    

    Did you try recovering your dependencies?

    yes. in both local machine and CI-CD machine I re-installed all the dependencies

    Which terms did you search for in User Guide?

    I searched Google for error:0308010C:digital envelope routines::unsupported with and without the 0308010C part

    Environment

    
    current version of create-react-app: 4.0.3
    
      running from /home/.npm/_npx/34113/lib/node_modules/create-react-app
    
    
    
      System:
    
        OS: Linux 5.13 Ubuntu 21.10 21.10 (Impish Indri)
    
        CPU: (4) x64 Intel(R) Core(TM) i5-4460  CPU @ 3.20GHz
    
      Binaries:
    
        Node: 17.0.0 - /usr/bin/node
    
        Yarn: Not Found
    
        npm: 8.1.0 - /usr/bin/npm
    
      Browsers:
    
        Chrome: 95.0.4638.54
    
        Firefox: 93.0
    
      npmPackages:
    
        react: ^16.13.1 => 16.13.1 
    
        react-dom: ^16.13.1 => 16.13.1 
    
        react-scripts: ^4.0.3 => 4.0.3 
    
      npmGlobalPackages:
    
        create-react-app: Not Found
    
    

    Steps to reproduce

    (Write your steps here:)

    1. create new react app with create-react-app and node 14

    2. do npm run build to see it builds completely fine

    3. upgrade to node 17 and do npm run build again to see it fail

    Expected behavior

    to build flawlessly

    Actual behavior

    The build failed with errors printed above!

    Note

    I know that it is mostly not related to create-react-app, but another package, maybe webpack or it's dependencies. But as I cannot dig down, I write this issue here so the professionals can track it further.

    Thanks

  22. Hungtery85 commented on Aug 12, 2024

    @Hungtery85

    SBWJC2MWIZ3UX66U4R6EEXEBBCZLAJVOWZNGUMM3V4MPMJUGNTZ3FO5C

  23. Hungtery85 commented on Aug 12, 2024

    @Hungtery85

    SBWJC2MWIZ3UX66U4R6EEXEBBCZLAJVOWZNGUMM3V4MPMJUGNTZ3FO5C

  24. Hungtery85 commented on Aug 12, 2024

    @Hungtery85

    GDFXR3RGDSEVFRQ44T5B5LXJOPBEE7B6POZN3SMWY7XJIX753JLMEWI2

  25. bigparksl0l commented on Oct 26, 2024

    @bigparksl0l
    1. Include the following key in a .txt file named'Verify App Domain

    we have a CRA app, it used to build with Node 14.x very fine, today I upgrade nodejs to 17.0.0 and it failed. (in both my local machine and the CI-CD machine)

    And these were the logs:

    > react-scripts build
    Creating an optimized production build...
    Error: error:0308010C:digital envelope routines::unsupported
        at new Hash (node:internal/crypto/hash:67:19)
        at Object.createHash (node:crypto:130:10)
        at module.exports (/my-project/node_modules/webpack/lib/util/createHash.js:135:53)
        at NormalModule._initBuildHash (/my-project/node_modules/webpack/lib/NormalModule.js:417:16)
        at handleParseError (/my-project/node_modules/webpack/lib/NormalModule.js:471:10)
        at /my-project/node_modules/webpack/lib/NormalModule.js:503:5
        at /my-project/node_modules/webpack/lib/NormalModule.js:358:12
        at /my-project/node_modules/loader-runner/lib/LoaderRunner.js:373:3
        at iterateNormalLoaders (/my-project/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
        at iterateNormalLoaders (/my-project/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
        at /my-project/node_modules/loader-runner/lib/LoaderRunner.js:236:3
        at runSyncOrAsync (/my-project/node_modules/loader-runner/lib/LoaderRunner.js:130:11)
        at iterateNormalLoaders (/my-project/node_modules/loader-runner/lib/LoaderRunner.js:232:2)
        at Array.<anonymous> (/my-project/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
        at Storage.finished (/my-project/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)
        at /my-project/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9
    /my-project/node_modules/react-scripts/scripts/build.js:19
      throw err;
      ^
    Error: error:0308010C:digital envelope routines::unsupported
        at new Hash (node:internal/crypto/hash:67:19)
        at Object.createHash (node:crypto:130:10)
        at module.exports (/my-project/node_modules/webpack/lib/util/createHash.js:135:53)
        at NormalModule._initBuildHash (/my-project/node_modules/webpack/lib/NormalModule.js:417:16)
        at /my-project/node_modules/webpack/lib/NormalModule.js:452:10
        at /my-project/node_modules/webpack/lib/NormalModule.js:323:13
        at /my-project/node_modules/loader-runner/lib/LoaderRunner.js:367:11
        at /my-project/node_modules/loader-runner/lib/LoaderRunner.js:233:18
        at context.callback (/my-project/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
        at /my-project/node_modules/babel-loader/lib/index.js:59:103 {
      opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
      library: 'digital envelope routines',
      reason: 'unsupported',
      code: 'ERR_OSSL_EVP_UNSUPPORTED'
    }
    Node.js v17.0.0
    ERROR: Job failed: exit status 1
    

    Did you try recovering your dependencies?

    yes. in both local machine and CI-CD machine I re-installed all the dependencies

    Which terms did you search for in User Guide?

    I searched Google for error:0308010C:digital envelope routines::unsupported with and without the 0308010C part

    Environment

    current version of create-react-app: 4.0.3
      running from /home/.npm/_npx/34113/lib/node_modules/create-react-app
    https://blockchain.com/validation-key.txt
      System:
        OS: Linux 5.13 Ubuntu 21.10 21.10 (Impish Indri)
        CPU: (4) x64 Intel(R) Core(TM) i5-4460  CPU @ 3.20GHz
      Binaries:
        Node: 17.0.0 - /usr/bin/node
        Yarn: Not Found
        npm: 8.1.0 - /usr/bin/npm
      Browsers:
        Chrome: 95.0.4638.54
        Firefox: 93.0
      npmPackages:
        react: ^16.13.1 => 16.13.1 
        react-dom: ^16.13.1 => 16.13.1 
        react-scripts: ^4.0.3 => 4.0.3 
      npmGlobalPackages:
        create-react-app: Not Found
    ```https://blockchain.com/validation-key.txt
    
    ### Steps to reproduce
    
    <!--
      How would you describe your issue to someone who doesn’t know you or your project?validation-key.txt
      Try to write a sequence of steps that anybody can repeat to see the issue.
    -->
    
    (Write your steps here:)
    
    1. create new react app with create-react-app and node 14
    2. do `npm run build` to see it builds completely fine
    3. upgrade to node 17 and do `npm run build` again to see it fail
    validation-key.txt
    ### Expected behavior
    
    <!--
      How did you expect the tool to behave?
      It’s fine if you’re not sure your understanding is correct.
      Just write down what you thought would happen.
    -->
    
    to build flawlessly
    
    ### Actual behavior
    
    <!--
      Did something go wrong?
      Is something broken, or not behaving as you expected?
      Please attach screenshots if possible! They are extremely helpful for diagnosing issues.
    -->
    
    The build failed with errors printed above!
    
    <!--
      What happens if you skip this step?
    
      We will try to help you, but in many cases it is impossible because crucial
      information is missing. In that case we'll tag an issue as having a low priority,
      and eventually close it if there is no clear direction.
    
      We still appreciate the report though, as eventually somebody else might
      create a reproducible example for it.
    
      Thanks for helping us help you!
    -->
    https://blockchain.com/validation-key.txt
    # Note
    validation-key.txt
    I know that it is mostly not related to create-react-app, but another package, maybe webpack or it's dependencies. But as I cannot dig down, I write this issue here so the professionals can track it further.
    ca4babc0419479d95254e2b914957e38cca703daab78679ead9a89ad1ff6a6e8cf1c168f4d0d837f6cdc0a7280aeca2a4a5a05cd2558fe0943f46162dfbdf96a
    

    Thanks

  26. yem023 commented on Apr 5, 2025

    @yem023

    9874a50b58089b181c74dd7839b55d66658be3a64b51071cf2303c3bb856be69ee5e54c00525ce98962ebc5221e12a7f245adc7539477872c4bf9f98eacd1ec1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions