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
let initialTreeBaseDurationsMap: Map<number, number> | null = null;
  let initialIDToRootMap: Map<number, number> | null = null;
  let isProfiling: boolean = false;
  let profilingStartTime: number = 0;
  let recordChangeDescriptions: boolean = false;
  let rootToCommitProfilingMetadataMap: CommitProfilingMetadataMap | null = null;
  function getProfilingData(): ProfilingDataBackend {
    const dataForRoots: Array<ProfilingDataForRootBackend> = [];
    if (rootToCommitProfilingMetadataMap === null) {
      throw Error(
        'getProfilingData() called before any profiling data was recorded',
      );
    }
    rootToCommitProfilingMetadataMap.forEach(
      (commitProfilingMetadata, rootID) => {
        const commitData: Array<CommitDataBackend> = [];
        const initialTreeBaseDurations: Array<[number, number]> = [];
        const displayName =
          (displayNamesByRootID !== null && displayNamesByRootID.get(rootID)) ||
          'Unknown';
        if (initialTreeBaseDurationsMap != null) {
          initialTreeBaseDurationsMap.forEach((treeBaseDuration, id) => {
            if (
              initialIDToRootMap != null &&
              initialIDToRootMap.get(id) === rootID
            ) {
               W
               b
              initialTreeBaseDurations.push([id, treeBaseDuration]);
            }