From 336097da9ce8a1e7fe53d0d6dc794f3ed27843b6 Mon Sep 17 00:00:00 2001 From: 11Warrior Date: Sat, 7 Feb 2026 17:18:50 +0530 Subject: [PATCH 1/2] bug-fix: DevTools - Error logic for missing nodes while deletion --- .../react-devtools-shared/src/devtools/store.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/react-devtools-shared/src/devtools/store.js b/packages/react-devtools-shared/src/devtools/store.js index 45ced5d4fdd..71854579ba1 100644 --- a/packages/react-devtools-shared/src/devtools/store.js +++ b/packages/react-devtools-shared/src/devtools/store.js @@ -1573,13 +1573,14 @@ export default class Store extends EventEmitter<{ const element = this._idToElement.get(id); if (element === undefined) { - this._throwAndEmitError( - Error( - `Cannot remove node "${id}" because no matching node was found in the Store.`, - ), - ); - - break; + /* + - there may be further nodes in the batch to be processed hence throwing error right now is not a good soln + - Our store may be partially updated because of this logic + - So I changed it to look for further nodes and skip removing this node + - logically as it is absent so its better logically + */ + i += 1; + continue; } i += 1; From 207e4d5a37e5098e46de0beb916900585c4a826b Mon Sep 17 00:00:00 2001 From: Aayush Thapa <110176681+11Warrior@users.noreply.github.com> Date: Sat, 7 Feb 2026 23:09:45 +0530 Subject: [PATCH 2/2] Improve node removal logic in store.js Refactor logic to skip removing absent nodes without error. --- packages/react-devtools-shared/src/devtools/store.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-devtools-shared/src/devtools/store.js b/packages/react-devtools-shared/src/devtools/store.js index 71854579ba1..2a560b38646 100644 --- a/packages/react-devtools-shared/src/devtools/store.js +++ b/packages/react-devtools-shared/src/devtools/store.js @@ -1572,6 +1572,7 @@ export default class Store extends EventEmitter<{ const id = operations[i]; const element = this._idToElement.get(id); + i += 1; if (element === undefined) { /* - there may be further nodes in the batch to be processed hence throwing error right now is not a good soln @@ -1579,11 +1580,10 @@ export default class Store extends EventEmitter<{ - So I changed it to look for further nodes and skip removing this node - logically as it is absent so its better logically */ - i += 1; continue; } - i += 1; + const {children, ownerID, parentID, weight} = element; if (children.length > 0) {