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. 




Scheduler.unstable_yieldValue(error.message);
      },
    });
    if (__DEV__) {
      expect(Scheduler).toFlushAndYield([
        'The server did not finish this Suspense boundary: The server used' +
          ' "renderToString" which does not support Suspense. If you intended' +
          ' for this Suspense boundary to render the fallback content on the' +
          ' server consider throwing an Error somewhere within the Suspense boundary.' +
          ' If you intended to have the server wait for the suspended component' +
          ' please switch to "renderToPipeableStream" which supports Suspense on the server',
      ]);
    } else {
      expect(Scheduler).toFlushAndYield([
        'The server could not finish this Suspense boundary, likely due to ' +
          'an error during server rendering. Switched to client rendering.',
      ]);
    }
    jest.runAllTimers();
    expect(container.textContent).toBe('Hello');
    const span = container.getElementsByTagName('span')[0];
    expect(ref.current).toBe(span);
  });
  it('replaces the fallback within the suspended time if there is a nested suspense', async () => {
    let suspend = false;
    const promise = new Promise(resolvePromise => {});
    const ref = React.createRef();
    function Child() {