SharedArrayBuffer will require cross-origin isolation as of M91, around May 2021

ReactjsGoogle Chrome

Reactjs Problem Overview


When creating a react app via npx create-react-app and running it, a warning pops up in DevTools (Chrome 88 and 89):

> scheduler.development.js:298 [Deprecation] SharedArrayBuffer will > require cross-origin isolation as of M91, around May 2021. See > https://developer.chrome.com/blog/enabling-shared-array-buffer/ for > more details.

Environment

  current version of create-react-app: 4.0.1
  running from /Users/mahdi/.npm/_npx/25767/lib/node_modules/create-react-app
  Binaries:
    Node: 14.15.4 - ~/.nvm/versions/node/v14.15.4/bin/node
    Yarn: 1.22.4 - /usr/local/bin/yarn
    npm: 6.14.10 - ~/.nvm/versions/node/v14.15.4/bin/npm
  Browsers:
    Chrome: 88.0.4324.96
    Edge: 87.0.664.66
    Firefox: 84.0
    Safari: 14.0.2
  npmPackages:
    react: ^17.0.1 => 17.0.1
    react-dom: ^17.0.1 => 17.0.1
    react-scripts: Not Found
  npmGlobalPackages:
    create-react-app: Not Found

enter image description here

Steps to reproduce

  1. npx create-react-app myapp
  2. cd myapp && npm start Open
  3. http://localhost:3000 in Chrome 88 or 89, regular or Incognito mode
  4. Open DevTools: the warning is displayed

Any suggestion for resolving this warning?

Reactjs Solutions


Solution 1 - Reactjs

Update the react and react-dom versions from 17.0.1 to ==> 17.0.2 could resolve this problem.

You just need to run npm update in the command prompt or bash, and hopefully you will see the changes in your package.json file. (yarn upgrade react --latest and yarn upgrade react-dom --latest if you want the upgrade to persist to the package.json)

Here is a git report from my app after applying the update:

image of git report

Solution 2 - Reactjs

As the warning shows, Chrome will require cross-origin isolation starting version 91 in order to use SharedArrayBuffer. As far as I know there is nothing you can do to resolve the warning other then wait for a react update.

Others are also having this issue as you can see here and here

The issue is fixed in this pull request but has not yet been released.

Edit: It is now fixed in version 17.0.2 of react.

Solution 3 - Reactjs

Actually after update react-dom to the latest version solved by me the problem, react alone did not solve it:

npm i react@latest react-dom@latest

OR

yarn add react@latest react-dom@latest

Solution 4 - Reactjs

For those not ready to upgrade to v17 yet (due to other legacy libraries), a simple workaround is to place the following code in any part of your index.html

    <script>
      // See https://github.com/facebook/react/issues/20829#issuecomment-802088260
      if (!crossOriginIsolated) SharedArrayBuffer = ArrayBuffer;
    </script>

Solution 5 - Reactjs

This issue has been fixed in React version 17.0.2 If you use also react-dom, you should also update it. Running npm update (or corresponding command in yarn, or whatever manager you're using) will update everything, and so, solve the deprecation warning.

This is my package.json after update:

screenshot from github desktop

Solution 6 - Reactjs

Update the react and react-dom versions to 17.0.2, yarn upgrade react --latest and yarn upgrade react-dom --latest

Also if using @hot-loader/react-dom or react-hot-loader, need to run yarn upgrade @hot-loader/react-dom --latest and yarn upgrade react-hot-loader --latest also.

Solution 7 - Reactjs

I know you have got your answer, but if someone only use: npm i react@latest react-dom@latest will not update react and react-dom to version 17.0.2 if current version react and react-dom is 16.x.x and your project is not EJECTED. That command is only update to react and react-dom to version 16.14.0. If you are in this case, you need to migrate react-script, react and react-dom version to 17 first: npm install [email protected] [email protected] [email protected]. More informations: https://dev.to/keonik/upgrading-to-react-17-create-react-app-edition-fe

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMJBZAView Question on Stackoverflow
Solution 1 - ReactjsMJBZAView Answer on Stackoverflow
Solution 2 - ReactjsRajohanView Answer on Stackoverflow
Solution 3 - ReactjsbuksoView Answer on Stackoverflow
Solution 4 - ReactjsraibtoffolettoView Answer on Stackoverflow
Solution 5 - Reactjsms3300View Answer on Stackoverflow
Solution 6 - ReactjssayidView Answer on Stackoverflow
Solution 7 - ReactjsNeil NguyenView Answer on Stackoverflow