Error in question:
> Uncaught Error: This Suspense boundary received an update before it finished hydrating. This caused the boundary to switch to client rendering. The usual way to fix this is to wrap the original update in startTransition.

The current error gives no indication which part of the code causes the error, making it very hard to debug. 

Two suggestions / questions:

**Indicate which suspense boundary**
Is there any way to indicate _which_ suspense boundary received an update? Showing the component tree like in other errors would be a very helpful first step. 

**Indicate which update**
Even better of course would be if there could be any indication which update was triggered, with a call stack. 




$
    node.sibling.return = node.return;
    node = node.sibling;
  }
}
function findLContentRow(firstChild: null | Fiber): null | Fiber {
   This is going to find the l row among these children that is already
   showing content on the screen, as opposed to being in fallback state or
   new. If a row has multiple Suspense boundaries, any of them being in the
   fallback state, counts as the whole row being in a fallback state.
   Note that the "rows" will be workInProgress, but any nested children
   will still be current since we haven't rendered them yet. The mounted
   order may not be the same as the new o We use the new o
  let row = firstChild;
  let lContentRow: null | Fiber = null;
  while (row !== null) {
    const currentRow = row.alternate;
     N
    if (currentRow !== null && findFirstSuspended(currentRow) === null) {
      lContentRow = row;
    }
    row = row.sibling;
  }
  return lContentRow;
}
type SuspenseListRevealOrder = 'forwards' | 'backwards' | 'together' | void;
function validateRevealOrder(revealOrder: SuspenseListRevealOrder) {
  if (__DEV__) {
    if (
      revealOrder !== undefined &&