How to Catch Uncaught Async Errors in Flutter with runZonedGuarded and PlatformDispatcher.instance.onError
FlutterError.onError only sees errors thrown inside framework callbacks. Unawaited futures, timers, streams, and code after an await go somewhere else. Here is which handler catches which error, measured on Flutter 3.44.8, and the main() setup that catches all of them, including on web.