`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

  1. Create a fresh RNW 0.84.0 project (Fabric, default).
  2. Install [email protected].
  3. Render:
typescript
<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)}
/>
  1. 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, or onHttpError fire — nothing is logged.
  • Swapping source={{ uri: ... }} for source={{ 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 — internetClient and runFullTrust are 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 the newSource.uri case, while newSource.html is 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