diff --git a/packages/react-devtools-core/src/standalone.js b/packages/react-devtools-core/src/standalone.js
index 52e425cecdd12..f495ea063bc7c 100644
--- a/packages/react-devtools-core/src/standalone.js
+++ b/packages/react-devtools-core/src/standalone.js
@@ -12,7 +12,7 @@ import {
// $FlowFixMe Flow does not yet know about flushSync()
flushSync,
// $FlowFixMe Flow does not yet know about createRoot()
- unstable_createRoot as createRoot,
+ createRoot,
} from 'react-dom';
import Bridge from 'react-devtools-shared/src/bridge';
import Store from 'react-devtools-shared/src/devtools/store';
diff --git a/packages/react-devtools-extensions/src/main.js b/packages/react-devtools-extensions/src/main.js
index 229eab5c6a0d7..0cb5f8b9364d5 100644
--- a/packages/react-devtools-extensions/src/main.js
+++ b/packages/react-devtools-extensions/src/main.js
@@ -1,7 +1,7 @@
/* global chrome */
import {createElement} from 'react';
-import {unstable_createRoot as createRoot, flushSync} from 'react-dom';
+import {createRoot, flushSync} from 'react-dom';
import Bridge from 'react-devtools-shared/src/bridge';
import Store from 'react-devtools-shared/src/devtools/store';
import {
diff --git a/packages/react-devtools-inline/README.md b/packages/react-devtools-inline/README.md
index 2847bac8a9394..d7c347efcaee2 100644
--- a/packages/react-devtools-inline/README.md
+++ b/packages/react-devtools-inline/README.md
@@ -60,7 +60,7 @@ const contentWindow = iframe.contentWindow;
const DevTools = initialize(contentWindow);
```
-3 Because the DevTools interface makes use of several new React APIs (e.g. suspense, concurrent mode) it should be rendered using either `ReactDOM.unstable_createRoot` or `ReactDOM.unstable_createSyncRoot`. **It should not be rendered with `ReactDOM.render`.**
+3 Because the DevTools interface makes use of several new React APIs (e.g. suspense, concurrent mode) it should be rendered using either `ReactDOM.createRoot` or `ReactDOM.createSyncRoot`. **It should not be rendered with `ReactDOM.render`.**
## Examples
@@ -92,8 +92,8 @@ initializeBackend(contentWindow);
const DevTools = initializeFrontend(contentWindow);
// interface can be rendered in the parent window at any time now...
-// Be sure to use either ReactDOM.unstable_createRoot()
-// or ReactDOM.unstable_createSyncRoot() to render this component.
+// Be sure to use either ReactDOM.createRoot()
+// or ReactDOM.createSyncRoot() to render this component.
// Let the backend know the frontend is ready and listening.
activateBackend(contentWindow);
@@ -136,8 +136,8 @@ const { contentWindow } = iframe;
// Initialize DevTools UI to listen to the iframe.
// This returns a React component we can render anywhere in the main window.
-// Be sure to use either ReactDOM.unstable_createRoot()
-// or ReactDOM.unstable_createSyncRoot() to render this component.
+// Be sure to use either ReactDOM.createRoot()
+// or ReactDOM.createSyncRoot() to render this component.
const DevTools = initialize(contentWindow);
// Let the backend know to initialize itself.
diff --git a/packages/react-devtools-shell/src/app/index.js b/packages/react-devtools-shell/src/app/index.js
index 8483be6b050a9..a66dc85f6754b 100644
--- a/packages/react-devtools-shell/src/app/index.js
+++ b/packages/react-devtools-shell/src/app/index.js
@@ -5,7 +5,7 @@
import {createElement} from 'react';
import {
// $FlowFixMe Flow does not yet know about createRoot()
- unstable_createRoot as createRoot,
+ createRoot,
} from 'react-dom';
import DeeplyNestedComponents from './DeeplyNestedComponents';
import Iframe from './Iframe';
diff --git a/packages/react-devtools-shell/src/devtools.js b/packages/react-devtools-shell/src/devtools.js
index 5ecd250161bd2..b2336c44606d7 100644
--- a/packages/react-devtools-shell/src/devtools.js
+++ b/packages/react-devtools-shell/src/devtools.js
@@ -2,7 +2,7 @@
import {createElement} from 'react';
// $FlowFixMe Flow does not yet know about createRoot()
-import {unstable_createRoot as createRoot} from 'react-dom';
+import {createRoot} from 'react-dom';
import {
activate as activateBackend,
initialize as initializeBackend,
diff --git a/packages/react-dom/src/__tests__/ReactDOMServerPartialHydration-test.internal.js b/packages/react-dom/src/__tests__/ReactDOMServerPartialHydration-test.internal.js
index e0ec5e9674309..b1f3d80b6677d 100644
--- a/packages/react-dom/src/__tests__/ReactDOMServerPartialHydration-test.internal.js
+++ b/packages/react-dom/src/__tests__/ReactDOMServerPartialHydration-test.internal.js
@@ -344,7 +344,7 @@ describe('ReactDOMServerPartialHydration', () => {
}).toWarnDev(
'Warning: Cannot hydrate Suspense in legacy mode. Switch from ' +
'ReactDOM.hydrate(element, container) to ' +
- 'ReactDOM.unstable_createSyncRoot(container, { hydrate: true })' +
+ 'ReactDOM.createSyncRoot(container, { hydrate: true })' +
'.render(element) or remove the Suspense components from the server ' +
'rendered components.' +
'\n in Suspense (at **)' +
diff --git a/packages/react-reconciler/src/ReactFiberBeginWork.js b/packages/react-reconciler/src/ReactFiberBeginWork.js
index a207b5e9ef05c..dacaf2f21a3b0 100644
--- a/packages/react-reconciler/src/ReactFiberBeginWork.js
+++ b/packages/react-reconciler/src/ReactFiberBeginWork.js
@@ -1972,7 +1972,7 @@ function mountDehydratedSuspenseComponent(
false,
'Cannot hydrate Suspense in legacy mode. Switch from ' +
'ReactDOM.hydrate(element, container) to ' +
- 'ReactDOM.unstable_createSyncRoot(container, { hydrate: true })' +
+ 'ReactDOM.createSyncRoot(container, { hydrate: true })' +
'.render(element) or remove the Suspense components from ' +
'the server rendered components.',
);