diff --git a/React/Base/Surface/RCTSurface.mm b/React/Base/Surface/RCTSurface.mm index 80d04b363..f217c66b5 100644 --- a/React/Base/Surface/RCTSurface.mm +++ b/React/Base/Surface/RCTSurface.mm @@ -321,7 +321,9 @@ RCTUIManager *uiManager = batchedBridge.uiManager; - RCTExecuteOnUIManagerQueue(^{ + // If we are on the main queue now, we have to proceed synchronously. + // Otherwise, we cannot perform synchronous waiting for some stages later. + (RCTIsMainQueue() ? RCTUnsafeExecuteOnUIManagerQueueSync : RCTExecuteOnUIManagerQueue)(^{ [uiManager registerRootViewTag:self->_rootViewTag]; RCTSurfaceRootShadowView *rootShadowView =