Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WJ UI closes on start with no errors or logs #2456

Closed
Phezzan opened this issue Nov 22, 2023 · 15 comments
Closed

WJ UI closes on start with no errors or logs #2456

Phezzan opened this issue Nov 22, 2023 · 15 comments
Assignees
Labels
bug Something isn't working dependencies Pull requests that update a dependency file

Comments

@Phezzan
Copy link

Phezzan commented Nov 22, 2023

Download Wabbajack.exe (Today 2023-11-22 3.4.0.0)
Run Wabbajack.exe
it downloads 3.4.0.0
it disappears then reappears... then disappears.

Run WJ again.
UI appears for 1 second, then disappears

========================

running wabbajack-cli.bat:
D:\Fallout 4\Tools\wabbajack>"D:\Fallout 4\Tools\wabbajack\3.4.0.0\wabbajack-cli.exe"
Unhandled exception. System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.
File name: 'System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
at Wabbajack.CLI.Program.Main(String[])
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
at Wabbajack.CLI.Program.Main(String[])
at Wabbajack.CLI.Program.

(String[])

Additional Context

Win 10
I downloaded and installed dotnet x64 runtime 8.0 - no change
I downloaded and installed dotnet x64 SDK 8.0 - no change

Wabbajack Version

3.4.0.0

Logs

No log file exists

@Mieekaserra
Copy link

Mieekaserra commented Nov 22, 2023

Do you have anything in windows event viewer?

Can you start it directly from the wabbajack.exe inside of the 3.4.0.0 folder

@Phezzan
Copy link
Author

Phezzan commented Nov 26, 2023

When I start 3.4.0.0/wabbajack.exe it shows the little window, then closes with no message.

Event viewer has 2 errors (within the last 2 minutes, don't ask about more than that)
This one appears useful.

The (H:) drive died years ago. It doesn't exist in the machine.

=======================

Application: Wabbajack.exe
CoreCLR Version: 8.0.23.53103
.NET Version: 8.0.0
Description: The application requested process termination through System.Environment.FailFast.
Message: Path is not sanitized: 'h:/games/steam/steamapps/common/supreme commander 2'
   at NexusMods.Paths.Utilities.PathHelpers.DebugAssertIsSanitized(ReadOnlySpan`1 path, IOSInformation os, Boolean isRelative)
   at NexusMods.Paths.RelativePath..ctor(String path)
   at GameFinder.StoreHandlers.Steam.Services.AppManifestParser.<>c__DisplayClass0_0.<ParseManifestFile>b__2(KVValue x)
   at GameFinder.StoreHandlers.Steam.Services.ParserHelpers.<>c__DisplayClass2_0`1.<ParseChildObjectValue>b__0()
   at FluentResults.Result.Try[T](Func`1 action, Func`2 catchHandler)
   at GameFinder.StoreHandlers.Steam.Services.ParserHelpers.ParseChildObjectValue[T](KVObject childObject, KVObject parentObject, Func`2 parser)
   at GameFinder.StoreHandlers.Steam.Services.ParserHelpers.<>c__DisplayClass6_0`1.<ParseRequiredChildObject>b__0(KVObject childObject)
   at FluentResults.Result`1.Bind[TNewValue](Func`2 bind)
   at GameFinder.StoreHandlers.Steam.Services.ParserHelpers.ParseRequiredChildObject[T](KVObject parentObject, String childObjectName, Func`2 parser)
   at GameFinder.StoreHandlers.Steam.Services.AppManifestParser.ParseManifestFile(AbsolutePath manifestPath)
   at GameFinder.StoreHandlers.Steam.SteamHandler.FindAllGames()+MoveNext()
   at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items)
   at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at GameFinder.Common.Extensions.SplitResults[TGame](IEnumerable`1 results)
   at GameFinder.Common.AHandler`2.FindAllGamesById(ErrorMessage[]& errors)
   at Wabbajack.Downloaders.GameFile.GameLocator.FindStoreGames[TGame,TId](AHandler`2 handler, Dictionary`2 paths, Func`2 getPath) in c:\oss\wabbajack\Wabbajack.Downloaders.GameFile\GameLocator.cs:line 104
   at Wabbajack.Downloaders.GameFile.GameLocator.FindAllGames() in c:\oss\wabbajack\Wabbajack.Downloaders.GameFile\GameLocator.cs:line 60
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
   at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(ServiceIdentifier serviceIdentifier)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(ServiceIdentifier serviceIdentifier)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerable(IEnumerableCallSite enumerableCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(ServiceIdentifier serviceIdentifier)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
   at Wabbajack.Downloaders.ServiceExtensions.<>c__DisplayClass0_0.<AddDownloadDispatcher>b__0(IServiceProvider s) in c:\oss\wabbajack\Wabbajack.Downloaders.Dispatcher\ServiceExtensions.cs:line 55
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitDisposeCache(ServiceCallSite transientCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass2_0.<RealizeService>b__0(ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
   at Wabbajack.App.<>c__DisplayClass1_0.<OnStartup>b__1(IScheduler _, Int32 _) in c:\oss\wabbajack\Wabbajack.App.Wpf\App.xaml.cs:line 85
   at System.Reactive.Concurrency.DispatcherScheduler.<>c__DisplayClass12_0`1.<Schedule>b__0() in /_/src/ReactiveUI.Wpf/Rx/Concurrency/DispatcherScheduler.cs:line 98
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at Wabbajack.App.Main()
Description: The process was terminated due to an unhandled exception.System.Diagnostics.DebugProvider+DebugAssertException: Path is not sanitized: 'h:/games/steam/steamapps/common/supreme commander 2'
   at NexusMods.Paths.Utilities.PathHelpers.DebugAssertIsSanitized(ReadOnlySpan`1 path, IOSInformation os, Boolean isRelative)
   at NexusMods.Paths.RelativePath..ctor(String path)
   at GameFinder.StoreHandlers.Steam.Services.AppManifestParser.<>c__DisplayClass0_0.<ParseManifestFile>b__2(KVValue x)
   at GameFinder.StoreHandlers.Steam.Services.ParserHelpers.<>c__DisplayClass2_0`1.<ParseChildObjectValue>b__0()
   at FluentResults.Result.Try[T](Func`1 action, Func`2 catchHandler)
   at GameFinder.StoreHandlers.Steam.Services.ParserHelpers.ParseChildObjectValue[T](KVObject childObject, KVObject parentObject, Func`2 parser)
   at GameFinder.StoreHandlers.Steam.Services.ParserHelpers.<>c__DisplayClass6_0`1.<ParseRequiredChildObject>b__0(KVObject childObject)
   at FluentResults.Result`1.Bind[TNewValue](Func`2 bind)
   at GameFinder.StoreHandlers.Steam.Services.ParserHelpers.ParseRequiredChildObject[T](KVObject parentObject, String childObjectName, Func`2 parser)
   at GameFinder.StoreHandlers.Steam.Services.AppManifestParser.ParseManifestFile(AbsolutePath manifestPath)
   at GameFinder.StoreHandlers.Steam.SteamHandler.FindAllGames()+MoveNext()
   at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items)
   at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at GameFinder.Common.Extensions.SplitResults[TGame](IEnumerable`1 results)
   at GameFinder.Common.AHandler`2.FindAllGamesById(ErrorMessage[]& errors)
   at Wabbajack.Downloaders.GameFile.GameLocator.FindStoreGames[TGame,TId](AHandler`2 handler, Dictionary`2 paths, Func`2 getPath) in c:\oss\wabbajack\Wabbajack.Downloaders.GameFile\GameLocator.cs:line 104
   at Wabbajack.Downloaders.GameFile.GameLocator.FindAllGames() in c:\oss\wabbajack\Wabbajack.Downloaders.GameFile\GameLocator.cs:line 60
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
   at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(ServiceIdentifier serviceIdentifier)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(ServiceIdentifier serviceIdentifier)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerable(IEnumerableCallSite enumerableCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(ServiceIdentifier serviceIdentifier)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
   at Wabbajack.Downloaders.ServiceExtensions.<>c__DisplayClass0_0.<AddDownloadDispatcher>b__0(IServiceProvider s) in c:\oss\wabbajack\Wabbajack.Downloaders.Dispatcher\ServiceExtensions.cs:line 55
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitDisposeCache(ServiceCallSite transientCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass2_0.<RealizeService>b__0(ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
   at Wabbajack.App.<>c__DisplayClass1_0.<OnStartup>b__1(IScheduler _, Int32 _) in c:\oss\wabbajack\Wabbajack.App.Wpf\App.xaml.cs:line 85
   at System.Reactive.Concurrency.DispatcherScheduler.<>c__DisplayClass12_0`1.<Schedule>b__0() in /_/src/ReactiveUI.Wpf/Rx/Concurrency/DispatcherScheduler.cs:line 98
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at Wabbajack.App.Main()
Stack:
   at System.Environment.FailFast(System.String, System.Exception, System.String)
   at System.Diagnostics.Debug.Fail(System.String, System.String)
   at NexusMods.Paths.Utilities.PathHelpers.DebugAssertIsSanitized(System.ReadOnlySpan`1<Char>, NexusMods.Paths.IOSInformation, Boolean)
   at NexusMods.Paths.RelativePath..ctor(System.String)
   at GameFinder.StoreHandlers.Steam.Services.AppManifestParser+<>c__DisplayClass0_0.<ParseManifestFile>b__2(ValveKeyValue.KVValue)
   at GameFinder.StoreHandlers.Steam.Services.ParserHelpers+<>c__DisplayClass2_0`1[[NexusMods.Paths.RelativePath, NexusMods.Paths, Version=0.1.6.0, Culture=neutral, PublicKeyToken=null]].<ParseChildObjectValue>b__0()
   at FluentResults.Result.Try[[NexusMods.Paths.RelativePath, NexusMods.Paths, Version=0.1.6.0, Culture=neutral, PublicKeyToken=null]](System.Func`1<NexusMods.Paths.RelativePath>, System.Func`2<System.Exception,FluentResults.IError>)
   at GameFinder.StoreHandlers.Steam.Services.ParserHelpers.ParseChildObjectValue[[NexusMods.Paths.RelativePath, NexusMods.Paths, Version=0.1.6.0, Culture=neutral, PublicKeyToken=null]](ValveKeyValue.KVObject, ValveKeyValue.KVObject, System.Func`2<ValveKeyValue.KVValue,NexusMods.Paths.RelativePath>)
   at GameFinder.StoreHandlers.Steam.Services.ParserHelpers+<>c__DisplayClass6_0`1[[NexusMods.Paths.RelativePath, NexusMods.Paths, Version=0.1.6.0, Culture=neutral, PublicKeyToken=null]].<ParseRequiredChildObject>b__0(ValveKeyValue.KVObject)
   at FluentResults.Result`1[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Bind[[NexusMods.Paths.RelativePath, NexusMods.Paths, Version=0.1.6.0, Culture=neutral, PublicKeyToken=null]](System.Func`2<System.__Canon,FluentResults.Result`1<NexusMods.Paths.RelativePath>>)
   at GameFinder.StoreHandlers.Steam.Services.ParserHelpers.ParseRequiredChildObject[[NexusMods.Paths.RelativePath, NexusMods.Paths, Version=0.1.6.0, Culture=neutral, PublicKeyToken=null]](ValveKeyValue.KVObject, System.String, System.Func`2<ValveKeyValue.KVValue,NexusMods.Paths.RelativePath>)
   at GameFinder.StoreHandlers.Steam.Services.AppManifestParser.ParseManifestFile(NexusMods.Paths.AbsolutePath)
   at GameFinder.StoreHandlers.Steam.SteamHandler+<FindAllGames>d__8.MoveNext()
   at System.Collections.Generic.LargeArrayBuilder`1[[OneOf.OneOf`2[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[GameFinder.Common.ErrorMessage, GameFinder.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null]], OneOf, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].AddRange(System.Collections.Generic.IEnumerable`1<OneOf.OneOf`2<System.__Canon,GameFinder.Common.ErrorMessage>>)
   at System.Collections.Generic.EnumerableHelpers.ToArray[[OneOf.OneOf`2[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[GameFinder.Common.ErrorMessage, GameFinder.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null]], OneOf, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]](System.Collections.Generic.IEnumerable`1<OneOf.OneOf`2<System.__Canon,GameFinder.Common.ErrorMessage>>)
   at System.Linq.Enumerable.ToArray[[OneOf.OneOf`2[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[GameFinder.Common.ErrorMessage, GameFinder.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null]], OneOf, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]](System.Collections.Generic.IEnumerable`1<OneOf.OneOf`2<System.__Canon,GameFinder.Common.ErrorMessage>>)
   at GameFinder.Common.Extensions.SplitResults[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.Collections.Generic.IEnumerable`1<OneOf.OneOf`2<System.__Canon,GameFinder.Common.ErrorMessage>>)
   at GameFinder.Common.AHandler`2[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[GameFinder.StoreHandlers.Steam.Models.ValueTypes.AppId, GameFinder.StoreHandlers.Steam, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null]].FindAllGamesById(GameFinder.Common.ErrorMessage[] ByRef)
   at Wabbajack.Downloaders.GameFile.GameLocator.FindStoreGames[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[GameFinder.StoreHandlers.Steam.Models.ValueTypes.AppId, GameFinder.StoreHandlers.Steam, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null]](GameFinder.Common.AHandler`2<System.__Canon,GameFinder.StoreHandlers.Steam.Models.ValueTypes.AppId>, System.Collections.Generic.Dictionary`2<GameFinder.StoreHandlers.Steam.Models.ValueTypes.AppId,Wabbajack.Paths.AbsolutePath>, System.Func`2<System.__Canon,Wabbajack.Paths.AbsolutePath>)
   at Wabbajack.Downloaders.GameFile.GameLocator.FindAllGames()
   at System.RuntimeMethodHandle.InvokeMethod(System.Object, Void**, System.Signature, Boolean)
   at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(System.Object, System.Span`1<System.Object>, System.Reflection.BindingFlags)
   at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo)
   at System.Reflection.RuntimeConstructorInfo.Invoke(System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(Microsoft.Extensions.DependencyInjection.ServiceLookup.ConstructorCallSite, Microsoft.Extensions.DependencyInjection.ServiceLookup.RuntimeResolverContext)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite, Microsoft.Extensions.DependencyInjection.ServiceLookup.RuntimeResolverContext)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2[[Microsoft.Extensions.DependencyInjection.ServiceLookup.RuntimeResolverContext, Microsoft.Extensions.DependencyInjection, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60],[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].VisitCallSite(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite, Microsoft.Extensions.DependencyInjection.ServiceLookup.RuntimeResolverContext)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite, Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier)
   at System.Collections.Concurrent.ConcurrentDictionary`2[[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier, Microsoft.Extensions.DependencyInjection, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60],[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].GetOrAdd(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier, System.Func`2<Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,System.__Canon>)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier, Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(System.Type)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.IServiceProvider)

The remainder of the message was truncated.

@Mieekaserra
Copy link

This Message: Path is not sanitized: 'h:/games/steam/steamapps/common/supreme commander 2' Is what is causing you to bomb out (Its this bug with gamefinder - erri120/GameFinder#115)

To Fix:
As its supreme commander 2 you should have a file called appmanifest_40100.acf in your steam folder (This is C:\Program Files (x86)\Steam\steamapps) for me. If the game is no longer installed - Delete it. If the game is still installed then you will need to edit the file to where its actually installed.

@UrbanCMC
Copy link
Contributor

That's not quite correct. If the game is installed the path is most likely correct.

The problem is caused by GameFinder assuming that the installdir in the manifest files will be a relative path, not an absolute one.
In this case that means installdir should have the value supreme commander 2.

@Mieekaserra
Copy link

That's not quite correct. If the game is installed the path is most likely correct.

The problem is caused by GameFinder assuming that the installdir in the manifest files will be a relative path, not an absolute one. In this case that means installdir should have the value supreme commander 2.

He Did say that H drive doesnt exist any more :)

@UrbanCMC
Copy link
Contributor

That's not quite correct. If the game is installed the path is most likely correct.
The problem is caused by GameFinder assuming that the installdir in the manifest files will be a relative path, not an absolute one. In this case that means installdir should have the value supreme commander 2.

He Did say that H drive doesnt exist any more :)

Fair point, I missed that :D

I just wanted to be clear that the error is only caused by the format of the path found in the manifest file. If the game was still located at that path the error would be the same.

@Phezzan
Copy link
Author

Phezzan commented Nov 27, 2023

Interesting, and thanks for the help.

If I understand correctly, an unrelated steam game is being found in a scan (windows registry?) and Wabbajack is attempting to readdir() or something, which fails...

This is just one of 40-50 games in the registry never reinstalled when the drive died.
Of course they can't be uninstalled either, because their uninstaller files are gone too. (The registry and windows install/uninstall is a godawful thing)

Since there's presently no error shown to the User, I would recommend throwing that into a try/catch and printing an error to the console.

My default method of GUI debugging is to run it in a terminal and read the output.

If you have a method of showing text on the GUI, you might throw [Searching Steam for compatible games] in there so people have a hint about what might've caused a problem - though they wouldn't have long to read it :D

@ShadowAce2000
Copy link

I'm getting the same issue but with a different error message in event viewer.

Running the Wabbajack.exe files just pops up with the logo then closes shortly after, with no view of the actual software screen, and no logs posted in the folder.

I've deleted, and reinstalled Wabbajack many times, including clearing the local program folder.
Reading the event viewer for the error gives this:

Faulting application name: Wabbajack.exe, version: 3.4.0.0, time stamp: 0x65410000
Faulting module name: System.Private.CoreLib.dll, version: 8.0.23.53103, time stamp: 0x95cd51ed
Exception code: 0x80131623
Fault offset: 0x00000000004286bb
Faulting process id: 0x0x6BA4
Faulting application start time: 0x0x1DA2C4AF1F0CB03
Faulting application path: C:\Modding\Wabbajack\3.4.0.0\Wabbajack.exe
Faulting module path: C:\Modding\Wabbajack\3.4.0.0\System.Private.CoreLib.dll
Report Id: 56fde1ad-2d27-42ac-9686-d7ebc0ac4648
Faulting package full name:
Faulting package-relative application ID:

I don't really understand any of this, but it seems to be a separate cause of the issue from the example above.. Any suggestions?

@ShadowAce2000
Copy link

I'm getting the same issue but with a different error message in event viewer.

Running the Wabbajack.exe files just pops up with the logo then closes shortly after, with no view of the actual software screen, and no logs posted in the folder.

I've deleted, and reinstalled Wabbajack many times, including clearing the local program folder. Reading the event viewer for the error gives this:

Faulting application name: Wabbajack.exe, version: 3.4.0.0, time stamp: 0x65410000 Faulting module name: System.Private.CoreLib.dll, version: 8.0.23.53103, time stamp: 0x95cd51ed Exception code: 0x80131623 Fault offset: 0x00000000004286bb Faulting process id: 0x0x6BA4 Faulting application start time: 0x0x1DA2C4AF1F0CB03 Faulting application path: C:\Modding\Wabbajack\3.4.0.0\Wabbajack.exe Faulting module path: C:\Modding\Wabbajack\3.4.0.0\System.Private.CoreLib.dll Report Id: 56fde1ad-2d27-42ac-9686-d7ebc0ac4648 Faulting package full name: Faulting package-relative application ID:

I don't really understand any of this, but it seems to be a separate cause of the issue from the example above.. Any suggestions?

I found the solution to this with some help in the Wabbajack discord.

Deleting the 3.4.0.0 files and instead installing the older 3.2.0.1 (https://github.com/wabbajack-tools/wabbajack/releases/tag/3.2.0.1) actually allowed me to launch it, and view a log file. This log file showed 3 errors, which pointed in the direction of the problem.

My three errors were all with items I had installed on steam, but weren't considered games. Source SDK, and two hollow knight soundtracks. My theory is that since these items aren't actually games, it messes with the searching function of Wabbajack.

Having not needed these 3 steam apps, I uninstalled them on steam, and was able to launch Wabbajack 3.4.0.0.

@Mieekaserra
Copy link

To debug this error

Grabbing this https://github.com/wabbajack-tools/wabbajack/releases/tag/3.2.0.1 unpacking it into the "3.2.0.1" folder and using the wabbajack.exe in that folder.

Open your wabbajack.current logfile from the logs folder.

look for errors such as this one
00:00:00.000 [ERROR] (Wabbajack.Downloaders.GameFile.GameLocator) Game does not exist: SteamGame { AppId = 598190, Name = Hollow Knight - Official Soundtrack, Path = C:\Program Files (x86)\Steam\steamapps\common\Hollow Knight - Official Soundtrack }

Uninstall the affected game/DLC whatever (you can reinstall after).

That should sort out anyone having this issue.

@EzioTheDeadPoet
Copy link
Contributor

To debug this error

Grabbing this https://github.com/wabbajack-tools/wabbajack/releases/tag/3.2.0.1 unpacking it into the "3.2.0.1" folder and using the wabbajack.exe in that folder.

Open your wabbajack.current logfile from the logs folder.

look for errors such as this one 00:00:00.000 [ERROR] (Wabbajack.Downloaders.GameFile.GameLocator) Game does not exist: SteamGame { AppId = 598190, Name = Hollow Knight - Official Soundtrack, Path = C:\Program Files (x86)\Steam\steamapps\common\Hollow Knight - Official Soundtrack }

Uninstall the affected game/DLC whatever (you can reinstall after).

That should sort out anyone having this issue.

To add to that sometimes the games aren't uninstalled correctly in those cases install and uninstall them.

If it is a steam game you can also go to where your steam is installed (usually C:\Program Files (x86)\Steam\steamapps by default) and delete the appmanifest_{ID number of the not found game}.acf file.

If it is a GOG game you will need to clean/delete the registry entry for it, which I wouldn't recommend inexperienced users to do so for those please install and uninstall the game with GOG Galaxy instead.

@EzioTheDeadPoet EzioTheDeadPoet added bug Something isn't working dependencies Pull requests that update a dependency file labels Dec 18, 2023
@EzioTheDeadPoet
Copy link
Contributor

@erri120 I assigned this to you since as I understand it we need to wait for you to update the GameFinder library.

@erri120
Copy link
Member

erri120 commented Jan 8, 2024

Will be handled in erri120/GameFinder#118

@erri120
Copy link
Member

erri120 commented Jan 8, 2024

Should be fixed in GameFinder 4.1.0.

@tr4wzified
Copy link
Member

Fixed in 3.4.2.0+

@EzioTheDeadPoet EzioTheDeadPoet unpinned this issue Jan 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants