### Website or app

Please checkout the linked branch not `main`
https://github.com/eps1lon/react-devtools-repro-no-matching-node/tree/repro/elements-leaking
Repro steps and screen recording included in the repro

### Repro steps

1. Clone repro
1. yarn
1. yarn start
1. Open app page
1. open devtools
1. Uncomment the `useEffect` block i.e. add an effect
1. inspect `Component` element
1. comment `useEffect` block i.e. remove the effect
1. Repeat comment/uncomment to see that children grow indefinitely


### How often does this bug happen?

Every time

### DevTools package (automated)

_No response_

### DevTools version (automated)

_No response_

### Error message (automated)

Could not inspect element with id 4

### Error call stack (automated)

_No response_

### Error component stack (automated)

_No response_

### GitHub query string (automated)

_No response_

Might be a duplicate of https://github.com/facebook/react/issues/21436#issuecomment-835406075 since the repro steps are the same. But depending on what the effect is doing, the behavior is different.
currentlyInspectedPaths = {};
    }
    hasElementUpdatedSinceLastInspected = false;
    mostRecentlyInspectedElement = inspectElementRaw(id);
    if (mostRecentlyInspectedElement === null) {
      return {
        id,
        responseID: requestID,
        type: 'not-found',
      };
    }
     Any time an inspected element has an update,
     we should update the selected $r value as wel.
     Do this before dehydration (cleanForBridge).
    updateSelectedElement(mostRecentlyInspectedElement);
     Clone before cleaning so that we preserve the full data.
     This will enable us to send patches without re-inspecting if hydrated paths are requested.
     (Reducing how often we shallow-render is a better DX for function components that use hooks.)
    const cleanedInspectedElement = {...mostRecentlyInspectedElement};
    cleanedInspectedElement.context = cleanForBridge(
      cleanedInspectedElement.context,
      createIsPathAllowed('context', null),
    );
    cleanedInspectedElement.hooks = cleanForBridge(
      cleanedInspectedElement.hooks,
      createIsPathAllowed('hooks', 'hooks'),
    );
    cleanedInspectedElement.props = cleanForBridge(
      cleanedInspectedElement.props,
      createIsPathAllowed('props', null),