Observable.subscribe causes the registered Observable function to be run each time it is subscribed. Since the registered function makes a fetch call, it is done a second time here. The error doesn't manifest if the returned data is the same, but if it is different, it will cause a hydration mismatch. The "do" method allows the Observable to run a side-effect on an existing subscription for all events (past and future): https://github.com/facebook/relay/blob/main/packages/relay-runtime/network/RelayObservable.js#L224.
Observable.subscribe causes the registered Observable function to be run each time it is subscribed. Since the registered function makes a fetch call, it is done a second time here. The error doesn't manifest if the returned data is the same, but if it is different, it will cause a hydration mismatch. The "do" method allows the Observable to run a side-effect on an existing subscription for all events (past and future): https://github.com/facebook/relay/blob/main/packages/relay-runtime/network/RelayObservable.js#L224.