Change:
function reevaluateErrorsAndWarnings() { fibersWithChangedErrorOrWarningCounts.clear(); <del> fiberToErrorsMap.forEach((countMap, fiberID) => { fibersWithChangedErrorOrWarningCounts.add(fiberID); </del> <ins> fiberIDToErrorsMap.forEach((countMap, fiberID) => { const fiber = idToArbitraryFiberMap.get(fiberID); if (fiber != null) { fibersWithChangedErrorOrWarningCounts.add(fiber); } </ins> }); <del> fiberToWarningsMap.forEach((countMap, fiberID) => { fibersWithChangedErrorOrWarningCounts.add(fiberID); </del> <ins> fiberIDToWarningsMap.forEach((countMap, fiberID) => { const fiber = idToArbitraryFiberMap.get(fiberID); if (fiber != null) { fibersWithChangedErrorOrWarningCounts.add(fiber); } </ins> }); recordPendingErrorsAndWarnings(); } <del> function recordPendingErrorsAndWarnings() { clearPendingErrorsAndWarningsAfterDelay(); </del> <ins> function mergeMapsAndGetCountHelper( fiber: Fiber, fiberID: number, pendingFiberToMessageCountMap: Map<Fiber, Map<string, number>>, fiberIDToMessageCountMap: Map<number, Map<string, number>>, ): number { let newCount = 0; </ins> <del> fibersWithChangedErrorOrWarningCounts.forEach(fiberID => { const fiber = idToArbitraryFiberMap.get(fiberID); if (fiber != null) { // Don't send updates for Fibers that didn't mount due to e.g. Suspense or an error boundary. // We may also need to clean up after ourselves to avoid leaks. // See inline comments in onErrorOrWarning() for more info. if (isFiberMountedImpl(fiber) !== MOUNTED) { untrackFiberID(fiber); return; } </del> <ins> let messageCountMap = fiberIDToMessageCountMap.get(fiberID); </ins> <del> let errorCount = 0; let warningCount = 0; </del> <ins> const pendingMessageCountMap = pendingFiberToMessageCountMap.get(fiber); if (pendingMessageCountMap != null) { if (messageCountMap == null) { messageCountMap = pendingMessageCountMap; </ins> <del> if (!shouldFilterFiber(fiber)) { const errorCountsMap = fiberToErrorsMap.get(fiberID); const warningCountsMap = fiberToWarningsMap.get(fiberID); </del> <ins> fiberIDToMessageCountMap.set(fiberID, pendingMessageCountMap); } else { // This Flow refinement should not be necessary and yet... const refinedMessageCountMap = ((messageCountMap: any): Map< string, number, >); pendingMessageCountMap.forEach((pendingCount, message) => { const previousCount = refinedMessageCountMap.get(message) || 0; refinedMessageCountMap.set(message, previousCount + pendingCount); }); } } </ins> <del> if (errorCountsMap != null) { errorCountsMap.forEach(count => { errorCount += count; }); } if (warningCountsMap != null) { warningCountsMap.forEach(count => { warningCount += count; }); } } </del> <ins> if (!shouldFilterFiber(fiber)) { if (messageCountMap != null) { messageCountMap.forEach(count => { newCount += count; }); } } pendingFiberToMessageCountMap.delete(fiber); return newCount; } function recordPendingErrorsAndWarnings() { clearPendingErrorsAndWarningsAfterDelay(); fibersWithChangedErrorOrWarningCounts.forEach(fiber => { const fiberID = getFiberIDUnsafe(fiber); if (fiberID === null) { // Don't send updates for Fibers that didn't mount due to e.g. Suspense or an error boundary. } else { const errorCount = mergeMapsAndGetCountHelper( fiber, fiberID, pendingFiberToErrorsMap, fiberIDToErrorsMap, ); const warningCount = mergeMapsAndGetCountHelper( fiber, fiberID, pendingFiberToWarningsMap, fiberIDToWarningsMap, ); </ins> pushOperation(TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS); pushOperation(fiberID); pushOperation(errorCount); pushOperation(warningCount); } <ins> // Always clean up so that we don't leak. pendingFiberToErrorsMap.delete(fiber); pendingFiberToWarningsMap.delete(fiber); </ins> }); fibersWithChangedErrorOrWarningCounts.clear(); }

Discussion:
the block to inspect "Component" in DevTools : "Could not inspect element with id 5" Originally reported in https://user- Every time
Here's another Chrome extension build with the fix from :
Everything fixed. Awesome :+1:
FYI just published as 4.13.4