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
if (
    sessionStorageGetItem(SESSION_STORAGE_RELOAD_AND_PROFILE_KEY) === 'true'
  ) {
    startProfiling(
      sessionStorageGetItem(SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY) ===
        'true',
    );
  }
   React will switch between these implementations depending on whether
   we have any manually suspended/errored-out Fibers or not.
  function shouldErrorFiberAlwaysNull() {
    return null;
  }
   Map of id and its force error status: true (error), false (toggled off),
   null (do nothing)
  const forceErrorForFiberIDs = new Map();
  function shouldErrorFiberAccordingToMap(fiber) {
    if (typeof setErrorHandler !== 'function') {
      throw new Error(
        'Expected overrideError() to not get called for earlier React versions.',
      );
    }
    const id = getFiberIDUnsafe(fiber);
    if (id === null) {
      return null;
    }
    let status = null;
    if (forceErrorForFiberIDs.has(id)) {
      status = forceErrorForFiberIDs.get(id);
      if (status === false) {