Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Watcher list disappeared

Open
#587 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 3 days

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
30/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
visualbasic

Research direction

Start with CompactGUI.Core.Analyser.AnalyseFolder and follow the call path through GetAnalysedFilesAsync, Watcher.Analyse, ParseWatchers, and RunWatcher. Reproduce the failure around the reported .NET 9.0.11 update and determine how the missing System.Linq.Parallel assembly affects watcher processing. Done means the crash is handled or prevented and the watcher list is not lost.

Written by the indexing model from the issue text.

Description

I used it for 20 days, someday the entire watcher list disappeared. I found this crash in Event Viewer:

Application: CompactGUI.exe
CoreCLR Version: 9.0.1025.47515
.NET Version: 9.0.10
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileNotFoundException: 
File name: 'System.Linq.Parallel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
   at CompactGUI.Core.Analyser.AnalyseFolder(CancellationToken cancellationToken)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at CompactGUI.Core.Analyser.AnalyseFolder(CancellationToken cancellationToken)
   at CompactGUI.Core.Analyser.GetAnalysedFilesAsync(CancellationToken token)
   at CompactGUI.Watcher.Watcher.Analyse(String folder, Boolean checkDiskModified, CancellationToken cToken)
   at CompactGUI.Watcher.Watcher.ParseWatchers(Boolean ParseAll, CancellationToken cToken)
   at CompactGUI.Watcher.Watcher.RunWatcher(Boolean runAll, CancellationToken cToken)
   at CompactGUI.Watcher.Watcher.OnSystemIdle()
   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 MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---w
   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.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.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at CompactGUI.Application.Main()

Time of the crash coincides with a Windows update 2025-11 .NET 9.0.11 Update for x64 Client (KB5071067). This suggests the update mechanism is not secure enough to not break apps. However, the watcher list being lost suggests another bug.

Windows 11 24H2 26100.7171
4.0 beta6

Dominant language
Visual Basic .NET
Stars
8.9k
Forks
343
Avg merge
3d 18h
Merged PRs (30d)
7

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from IridiumIO/CompactGUI

All issues in IridiumIO/CompactGUI

Similar issues

More Desktop Dev issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.