Skip to content

Crash recovery

WebView2 runs each widget’s page in a separate renderer process. CrashRecovery.cs and shared/crashed.html implement Umbra’s policy for CoreWebView2.ProcessFailed.

Failure Umbra’s response
A widget’s renderer exits Reload the widget. At most 3 reloads per 10 minutes
Still failing after that Show the host-owned “This widget stopped working” page, with a Reload button
A hung renderer Only logged; Umbra doesn’t kill it
The browser process exits Recreate the WebView2 environment and the view

The host-owned page comes from the virtual host umbra.local (shared/crashed.html), so it keeps working even if the widget’s own files are the problem.

Settings → Data & privacy shows each widget’s crash count, and the log (umbractl logs) has the details. Together with safe mode, that’s how you find a misbehaving widget.

WebView2 host · Troubleshooting