In this [issue](https://github.com/facebook/react/issues/23373), when you navigate to [this app](https://next-rsc-notes.vercel.app/note/1646289027680) and inspect the sidebar in the components tab, you will get this error:

![image](https://user-images.githubusercontent.com/2735514/158241727-64eba8f9-5ac2-4aa7-bffa-ff9b3174a261.png)

 This is a user error. One of the components in the user's app thrown. However, the UI for this is confusing, because it seems like it's a DevTools error. We've gotten a lot of bug reports like this, and it would be good to differentiate between DevTools bugs and bugs in the app. For this task:

- [ ] Build the React DevTools extension locally (instructions [here](https://github.com/facebook/react/tree/main/packages/react-devtools-extensions)) and reproduce the error
- [ ] Figure out a way to have the front end be able to differentiate whether the error is a error within DevTools or within the user's app
- [ ] Design/implement a better UI to help app developers distinguish between these two cases
}
          break;
        case ComponentFilterHOC:
          hideElementsWithDisplayNames.add(new RegExp('\\('));
          break;
        default:
          console.warn(
            `Invalid component filter type "${componentFilter.type}"`,
          );
          break;
      }
    });
  }
   The renderer interface can't read saved component filters directly,
   because they are stored in localStorage within the context of the extension.
   Instead it relies on the extension to pass filters through.
  if (window.__REACT_DEVTOOLS_COMPONENT_FILTERS__ != null) {
    applyComponentFilters(window.__REACT_DEVTOOLS_COMPONENT_FILTERS__);
  } else {
    
    
    
    
     F
    applyComponentFilters(getDefaultComponentFilters());
  }
   If necessary, we can revisit optimizing this operation.
   For example, we could add a new recursive unmount tree operation.
   The unmount operations are already significantly smaller than mount operations though.
   This is something to keep in mind for later.