diff --git a/src/UniTask/Assets/Plugins/UniTask/Runtime/UniTaskCompletionSource.cs b/src/UniTask/Assets/Plugins/UniTask/Runtime/UniTaskCompletionSource.cs index 81afa51..4f09a1c 100644 --- a/src/UniTask/Assets/Plugins/UniTask/Runtime/UniTaskCompletionSource.cs +++ b/src/UniTask/Assets/Plugins/UniTask/Runtime/UniTaskCompletionSource.cs @@ -46,12 +46,13 @@ namespace Cysharp.Threading.Tasks public ExceptionHolder(Exception exception) { - if (exception is AggregateException aex && aex.InnerExceptions?.Count == 1) + var flattenedAggregate = (exception as AggregateException)?.Flatten(); + if (flattenedAggregate?.InnerExceptions?.Count == 1) { - this.exception = ExceptionDispatchInfo.Capture(aex.InnerExceptions[0]); + this.exception = ExceptionDispatchInfo.Capture(flattenedAggregate.InnerExceptions[0]); } else - { + { this.exception = ExceptionDispatchInfo.Capture(exception); } }