`source={{ uri }}` renders a blank WebView on Windows (New Architecture / Fabric)
Author: chaitanya207Created Jul 24, 2026Updated Jul 24, 2026
LabelsType: bug report
Bug
source={{ uri }} renders a blank WebView on Windows (New Architecture / Fabric). No navigation, no error events, no console output — the WebView2 control mounts correctly (confirmed via background color) but never paints any content. source={{ html }} works correctly in the same environment.
Environment
- react-native-webview version: 16.0.0
- react-native-windows version: 0.84.0
- react-native version: 0.84.1
- Platform: Windows 11
- Architecture: New Architecture (Fabric) — required/default on RNW 0.84
- Capabilities declared in Package.appxmanifest:
internetClient,runFullTrust
Steps to reproduce
- Create a fresh RNW 0.84.0 project (Fabric, default).
- Install
[email protected]. - Render:
<WebView
source={{ uri: 'https://www.bing.com' }}
style={{ flex: 1, backgroundColor: 'red' }}
javaScriptEnabled={true}
originWhitelist={['*']}
onLoadStart={(e) => console.log('LOAD START', e.nativeEvent)}
onLoadEnd={(e) => console.log('LOAD END', e.nativeEvent)}
onError={(e) => console.log('ERROR', e.nativeEvent)}
onHttpError={(e) => console.log('HTTP ERROR', e.nativeEvent)}
/>- Run
npx react-native run-windows.
Expected behavior
The WebView navigates to https://www.bing.com and renders the page. At minimum, onLoadStart should fire.
Actual behavior
- The red background renders briefly, confirming the native control mounts and sizes correctly.
- No page content ever paints — the view goes blank and stays blank.
- None of
onLoadStart,onLoadEnd,onError, oronHttpErrorfire — nothing is logged. - Swapping
source={{ uri: ... }}forsource={{ html: '<h1>test</h1>' }}in the exact same component works correctly and renders immediately.
What I've ruled out
- Not a sandboxing/network-capability issue —
internetClientandrunFullTrustare already declared. - Not a WebView2 Runtime installation issue — confirmed present, and html rendering proves the control itself works.
- Not a layout/sizing issue — background color confirms the control mounts and sizes correctly.
- Since no lifecycle events fire at all, this points to
Navigate()(or equivalent) never being invoked on the native Windows side for thenewSource.uricase, whilenewSource.htmlis wired to a working code path.
Additional context
This appears related to the recent Windows New Architecture rewrite that replaced the old System XAML / WebView2-paper implementation. Possibly related to #3953 (Turbo Module/XAML support for Windows) and #3949 (RnwNewArch config).
Source: react-native-webview/react-native-webview