The user shouldn't have to unwind aggregate Exceptions themselves, we should just support this. https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/how-to-handle-exceptions-in-parallel-loops ```cs TaskScheduler.UnobservedTaskException += async (sender, e) => { foreach(var ex in e.Exception.Flatten().InnerExceptions) { await CrashReporter.Post(ex); } }; ```