Unhandled error ocurred. Please use this information to file a bug report:
2022-04-02 19:31:04.9836 Version: 1.21.124+066eccaa0c
OS Description: Darwin 21.3.0 Darwin Kernel Version 21.3.0: Wed Jan 5 21:37:58 PST 2022; root:xnu-8019.80.24~20/RELEASE_ARM64_T6000
Runtime Identifier: osx.12-x64
ReactiveUI.UnhandledErrorException: An object implementing IHandleObservableErrors (often a ReactiveCommand or ObservableAsPropertyHelper) has errored, thereby breaking its observable pipeline. To prevent this, ensure the pipeline does not error, or Subscribe to the ThrownExceptions property of the object in question to handle the erroneous case.
---> System.AggregateException: One or more errors occurred. (Length cannot be less than zero. (Parameter 'length'))
---> System.ArgumentOutOfRangeException: Length cannot be less than zero. (Parameter 'length')
at System.String.Substring(Int32 startIndex, Int32 length)
at IronyModManager.Parser.Generic.KeyParser.CanParse(CanParseArgs args) in D:\Working\IronyModManager\src\IronyModManager.Parser\Generic\KeyParser.cs:line 87
at System.Linq.Enumerable.TryGetFirst[TSource](IEnumerable`1 source, Func`2 predicate, Boolean& found)
at IronyModManager.Parser.ParserManager.InvokeParsers(ParserManagerArgs args) in D:\Working\IronyModManager\src\IronyModManager.Parser\ParserManager.cs:line 294
at IronyModManager.Parser.ParserManager.Parse(ParserManagerArgs args) in D:\Working\IronyModManager\src\IronyModManager.Parser\ParserManager.cs:line 121
at IronyModManager.Services.ModPatchCollectionService.ParseModFiles(IGame game, IEnumerable`1 fileInfos, IModObject modObject) in D:\Working\IronyModManager\src\IronyModManager.Services\ModPatchCollectionService.cs:line 2402
at IronyModManager.Services.ModPatchCollectionService.<>c__DisplayClass26_0.<GetModObjectsAsync>b__0(IMod m) in D:\Working\IronyModManager\src\IronyModManager.Services\ModPatchCollectionService.cs:line 659
at System.Linq.Parallel.ForAllOperator`1.ForAllEnumerator`1.MoveNext(TInput& currentElement, Int32& currentKey)
at System.Linq.Parallel.ForAllSpoolingTask`2.SpoolingWork()
at System.Linq.Parallel.SpoolingTaskBase.Work()
at System.Linq.Parallel.QueryTask.BaseWork(Object unused)
at System.Linq.Parallel.QueryTask.<>c.<.cctor>b__10_0(Object o)
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of inner exception stack trace ---
at System.Linq.Parallel.QueryTaskGroupState.QueryEnd(Boolean userInitiatedDispose)
at System.Linq.Parallel.SpoolingTask.SpoolForAll[TInputOutput,TIgnoreKey](QueryTaskGroupState groupState, PartitionedStream`2 partitions, TaskScheduler taskScheduler)
at System.Linq.Parallel.DefaultMergeHelper`2.System.Linq.Parallel.IMergeHelper<TInputOutput>.Execute()
at System.Linq.Parallel.MergeExecutor`1.Execute()
at System.Linq.Parallel.MergeExecutor`1.Execute[TKey](PartitionedStream`2 partitions, Boolean ignoreOutput, ParallelMergeOptions options, TaskScheduler taskScheduler, Boolean isOrdered, CancellationState cancellationState, Int32 queryId)
at System.Linq.Parallel.PartitionedStreamMerger`1.Receive[TKey](PartitionedStream`2 partitionedStream)
at System.Linq.Parallel.ForAllOperator`1.WrapPartitionedStream[TKey](PartitionedStream`2 inputStream, IPartitionedStreamRecipient`1 recipient, Boolean preferStriping, QuerySettings settings)
at System.Linq.Parallel.UnaryQueryOperator`2.UnaryQueryOperatorResults.ChildResultsRecipient.Receive[TKey](PartitionedStream`2 inputStream)
at System.Linq.Parallel.ListQueryResults`1.GivePartitionedStream(IPartitionedStreamRecipient`1 recipient)
at System.Linq.Parallel.UnaryQueryOperator`2.UnaryQueryOperatorResults.GivePartitionedStream(IPartitionedStreamRecipient`1 recipient)
at System.Linq.Parallel.QueryOperator`1.GetOpenedEnumerator(Nullable`1 mergeOptions, Boolean suppressOrder, Boolean forEffect, QuerySettings querySettings)
at System.Linq.Parallel.ForAllOperator`1.RunSynchronously()
at System.Linq.ParallelEnumerable.ForAll[TSource](ParallelQuery`1 source, Action`1 action)
at IronyModManager.Services.ModPatchCollectionService.GetModObjectsAsync(IGame game, IEnumerable`1 mods, String collectionName) in D:\Working\IronyModManager\src\IronyModManager.Services\ModPatchCollectionService.cs:line 656
at IronyModManager.ViewModels.Controls.ModHolderControlViewModel.<>c__DisplayClass141_0.<<AnalyzeModsAsync>b__1>d.MoveNext() in D:\Working\IronyModManager\src\IronyModManager\ViewModels\Controls\ModHolderControlViewModel.cs:line 488
--- End of stack trace from previous location ---
at IronyModManager.ViewModels.Controls.ModHolderControlViewModel.AnalyzeModsAsync(Int64 id, PatchStateMode mode, IEnumerable`1 versions) in D:\Working\IronyModManager\src\IronyModManager\ViewModels\Controls\ModHolderControlViewModel.cs:line 486
at IronyModManager.ViewModels.Controls.ModHolderControlViewModel.<>c__DisplayClass146_0.<<OnActivated>g__runAnalysis|0>d.MoveNext() in D:\Working\IronyModManager\src\IronyModManager\ViewModels\Controls\ModHolderControlViewModel.cs:line 683
--- End of inner exception stack trace ---
at ReactiveUI.RxApp.<>c__DisplayClass9_0.<.cctor>b__2()
at System.Reactive.Concurrency.Scheduler.Invoke(Action action) in /_/Rx.NET/Source/src/System.Reactive/Concurrency/Scheduler.Simple.cs:line 253
at System.Reactive.Concurrency.Scheduler.<>c.<Schedule>b__74_0(IScheduler _, Action a) in /_/Rx.NET/Source/src/System.Reactive/Concurrency/Scheduler.Simple.cs:line 37
at Avalonia.Threading.AvaloniaScheduler.Schedule[TState](TState state, TimeSpan dueTime, Func`3 action) in /_/src/Avalonia.Base/Threading/AvaloniaScheduler.cs:line 73
at System.Reactive.Concurrency.Scheduler.Schedule(IScheduler scheduler, Action action) in /_/Rx.NET/Source/src/System.Reactive/Concurrency/Scheduler.Simple.cs:line 37
at ReactiveUI.RxApp.<>c.<.cctor>b__9_1(Exception ex)
at System.Reactive.AnonymousSafeObserver`1.OnNext(T value) in /_/Rx.NET/Source/src/System.Reactive/AnonymousSafeObserver.cs:line 54
at System.Reactive.ObserveOnObserverNew`1.DrainStep(ConcurrentQueue`1 q) in /_/Rx.NET/Source/src/System.Reactive/Internal/ScheduledObserver.cs:line 559
at System.Reactive.ObserveOnObserverNew`1.DrainShortRunning(IScheduler recursiveScheduler) in /_/Rx.NET/Source/src/System.Reactive/Internal/ScheduledObserver.cs:line 513
at Avalonia.Threading.AvaloniaScheduler.<>c__DisplayClass4_1`1.<Schedule>b__1() in /_/src/Avalonia.Base/Threading/AvaloniaScheduler.cs:line 47
at Avalonia.Threading.JobRunner.RunJobs(Nullable`1 priority) in /_/src/Avalonia.Base/Threading/JobRunner.cs:line 37
at Avalonia.Native.PlatformThreadingInterface.SignaledCallback.Signaled(Int32 priority, Int32 priorityContainsMeaningfulValue) in /_/src/Avalonia.Native/PlatformThreadingInterface.cs:line 39
at Avalonia.Native.Interop.Impl.__MicroComIAvnSignaledCallbackVTable.Signaled(IntPtr this, Int32 priority, Int32 priorityContainsMeaningfulValue) in /_/src/Avalonia.Native/Interop.Generated.cs:line 3796
--- End of stack trace from previous location ---
at Avalonia.Native.PlatformThreadingInterface.RunLoop(CancellationToken cancellationToken) in /_/src/Avalonia.Native/PlatformThreadingInterface.cs:line 90
at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken) in /_/src/Avalonia.Base/Threading/Dispatcher.cs:line 65
at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.Start(String[] args) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 120
at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime[T](T builder, String[] args, ShutdownMode shutdownMode) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 209
at IronyModManager.Program.Main(String[] args) in D:\Working\IronyModManager\src\IronyModManager\Program.cs:line 96