GUI crashes
application error
Faulting application name: CompactGUI.exe, version: 3.0.0.0, time stamp: 0x6283da22
Faulting module name: KERNELBASE.dll, version: 10.0.25193.1000, time stamp: 0x7f47a922
Exception code: 0xe0434352
Fault offset: 0x000000000007527c
Faulting process ID: 0x0x2918
Faulting application start time: 0x0x1D8C367ECBCC1F7
Faulting application path: C:\Users\root\Documents\CompactGUI.exe
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report ID: cc33f490-e169-47dd-ba04-6efae2f82617
Faulting package full name:
Faulting package-relative application ID:
.net runtime
Application: CompactGUI.exe
CoreCLR Version: 6.0.622.26707
.NET Version: 6.0.6
Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidCastException: Specified cast is not valid.
at CompactGUI.Core.Analyser.HasDirectoryWritePermission()
at CompactGUI.MainViewModel.AnalyseBegin()
at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state)
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 System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ExecutionContext.Run(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 System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.Run()
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run()
at CompactGUI.Application.Main()
At what point does the crash occur? Is it when you try to compress a particular folder?
At what point does the crash occur? Is it when you try to compress a particular folder?
gui opens fine, but when selecting a games folder, it crashes.
I'm also having this issue, it crashes every time I select certain game folders. Can't find any rhyme or reason though. So far it's happened with Battalion: Legacy, Squad, STEEP, and World War Z (all Steam installs).
still crashes for me, can't figure out what's causing it, event viewers shows the same errors as posted here. tried reinstalling .net 6 too.
The error would indicate you don't have write permission for the directory or a subdirectory of the folder you're trying to compress. It's interesting because CompactGUI should be able to catch this.
Does it work if you run it in admin mode?
I double-checked and the error in Event Viewer is the same on my end, but it happens even with CompactGUI running in admin mode, and the folder permissions are the same for all games in the directory. Not sure why it's only affecting certain ones..
Same here, the only thing to note is that I'm using a secondary drive to store my games.
Same here, the only thing to note is that I'm using a secondary drive to store my games.
Just curious, have you used this drive with different installations of Windows since you formatted it?
I ask because if you formatted it in Windows, sometimes it will have the permissions under the old user account for large parts of the drive. When you reinstall Windows on the same system but don't format the slave drive, the identifier for the main account changes, so the permissions explode, in a sense, with parts of the drive under an invalid user's permissions.
There are ways to reset the entire drive's permissions to default, but I would wait. It's possible the dev may want to test what's going on. I know this is a hurdle they're trying to figure out before marking the alpha as stable. I just thought I'd give my two cents as to what may be causing the issue.
After all is said and done, you may want to do that though.... it would be wise as other programs can complain when permissions get ruined like this.
My games are also on secondary drives, but no, I've never formatted them in Windows and there aren't any permission issues. There are many games on these drives that I can open CompactGUI with, and then there's just a handful of select games on said drives that immediately crash the program when I select the game folders. I don't think this issue is permission-related.
My games are also on secondary drives, but no, I've never formatted them in Windows and there aren't any permission issues. There are many games on these drives that I can open CompactGUI with, and then there's just a handful of select games on said drives that immediately crash the program when I select the game folders. I don't think this issue is permission-related.
I'm installing STEEP from Steam and I want to attempt to compact it with alpha 7. I'm curious if it's consistent based on the game and source. In the meantime, what Windows 10/11 version are you on? (Which major update)
In the meantime, what Windows 10/11 version are you on?
Windows 10 Home, version 21H2 (19044.2006)
I don't think this issue is permission-related.
If you have the same error as listed in the .NET log in the OP, it says the problem starts "at CompactGUI.Core.Analyser.HasDirectoryWritePermission()", which makes it clear that it's something related to permissions. Whether the tool is having a problem checking the write permissions or the folder indeed is not writeable, I do not know.
I installed STEEP and was able to compress it fine on my end. Doesn't prove that the issue isn't at large, but it does seem to mean it is not the games themselves.
Any yes, I install games on a secondary drive too.
@ImminentFate I actually was able to produce a crash scanning a specific folder, and it's reproducible. I was able to get a trace dump from it, and I can provide it via direct message if you think seeing a stacktrace with time travel recording might help find the issue.
Appearently I got the same issue where trying to compress the file from another drive crashes. Then after the one comment that says permission issue, I then looked up the permissions on the folder. I look at the permission and there was a "missing user", I then removed that and now it compresses fine.
So the fix is try to find a permission that is not belong to you/your machine or the corrupted/missing user and then remove it. If its an inherited parent object, then find the parent folder and then remove it from there.
Btw I found this crashing problem is started since version 3 alpha 6, alpha 5 didnt have this issue. Tested with a5,a6, and a7, and also the current v3 beta 1
Missing users can also just show up as a SID, so if any have those, its likely to cause the same issue.
Appearently I got the same issue where trying to compress the file from another drive crashes. Then after the one comment that says permission issue, I then looked up the permissions on the folder. I look at the permission and there was a "missing user", I then removed that and now it compresses fine.
So the fix is try to find a permission that is not belong to you/your machine or the corrupted/missing user and then remove it. If its an inherited parent object, then find the parent folder and then remove it from there.
Btw I found this crashing problem is started since version 3 alpha 6, alpha 5 didnt have this issue. Tested with a5,a6, and a7, and also the current v3 beta 1
Windows' permissions and user profiles are a total nightmare to navigate :/
Indeed lol
Appearently I got the same issue where trying to compress the file from another drive crashes. Then after the one comment that says permission issue, I then looked up the permissions on the folder. I look at the permission and there was a "missing user", I then removed that and now it compresses fine.
So the fix is try to find a permission that is not belong to you/your machine or the corrupted/missing user and then remove it. If its an inherited parent object, then find the parent folder and then remove it from there.
Btw I found this crashing problem is started since version 3 alpha 6, alpha 5 didnt have this issue. Tested with a5,a6, and a7, and also the current v3 beta 1
Windows' permissions and user profiles are a total nightmare to navigate :/
Absolutely, so I'd just reset the permissions for the drive using the icacls command.
I'm getting something similar, also only when compressing on another drive.
Application: CompactGUI.exe
CoreCLR Version: 6.0.1022.47605
.NET Version: 6.0.10
Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidOperationException: Cannot access child value on Gameloop.Vdf.Linq.VValue.
at Gameloop.Vdf.Linq.VToken.get_Item(Object key)
at CompactGUI.Helper.GetSteamNameAndIDFromFolder(String path)
at CompactGUI.MainViewModel.SelectFolder(String path)
at CompactGUI.MainWindow.SearchClicked(Object sender, MouseButtonEventArgs e)
at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at System.Windows.Interop.HwndSource.InputFilterMessage(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 System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.Run()
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run()
at CompactGUI.Application.Main()
Do those particular games save files to your disk:\users* directories? Those are notorious for causing crashes, in my experience. You might want to just use the CLI tool compact.exe so it doesn't search endlessly in subfolders