Flow.Launcher icon indicating copy to clipboard operation
Flow.Launcher copied to clipboard

BUG: Settings window will randomly become unresponsive

Open j-a-s-o-n-g opened this issue 5 months ago • 2 comments

Checks

  • [x] I have checked that this issue has not already been reported.

  • [x] I am using the latest version of Flow Launcher.

  • [ ] I am using the prerelease version of Flow Launcher.

Problem Description

This doesn't happen every time, but has been happening once in a while. If it matters, I almost never shut down my computer, I always sleep it.

I go to settings via typing in settings in Flow Launcher. In the Flow Launcher settings, if I immediately click plugins, it will likely work, but if I wait a bit of time or scroll down in the home screen of settings, then I try to go to extensions, the whole window will stop responding to clicks. Note: The window itself doesn't go unresponsive to where I need to "end task", it's just a normal responsive window but it doesn't respond to keyboard or mouse.

To Reproduce

  1. go to settings
  2. wait a bit or use the mouse wheel to scroll down in settings and scroll back up
  3. now try to access extensions on the left.

Screenshots

No response

Flow Launcher Version

1.20.0 & 1.20.1

Windows Build Number

Microsoft Windows [Version 10.0.26100.4351]

Error Log

15:50:33.3246-05:00 - INFO - Logger.SetLogLevel - Using log level: INFO. 15:50:33.3246-05:00 - INFO - App.OnStartup - Begin Flow Launcher startup ---------------------------------------------------- 15:50:33.3246-05:00 - INFO - App.OnStartup - Runtime info: Flow Launcher version: 1.20.1 OS Version: 26100.4351 IntPtr Length: 8 x64: True 15:50:33.5167-05:00 - INFO - PluginManager.InitializePluginsAsync - Total init cost for <Plugin Indicator> is <2ms> 15:50:33.5167-05:00 - INFO - PluginManager.InitializePluginsAsync - Total init cost for <Plugin Runner> is <8ms> 15:50:33.5167-05:00 - INFO - PluginManager.InitializePluginsAsync - Total init cost for <Colors> is <11ms> 15:50:33.5352-05:00 - INFO - PluginManager.InitializePluginsAsync - Total init cost for <Process Killer> is <20ms> 15:50:33.5352-05:00 - INFO - PluginManager.InitializePluginsAsync - Total init cost for <URL> is <28ms> 15:50:33.5352-05:00 - INFO - PluginManager.InitializePluginsAsync - Total init cost for <Shell> is <24ms> 15:50:33.5352-05:00 - INFO - PluginManager.InitializePluginsAsync - Total init cost for <Calculator> is <27ms> 15:50:33.7436-05:00 - INFO - CommunityPluginSource.FetchAsync - Loading plugins from https://fastly.jsdelivr.net/gh/Flow-Launcher/Flow.Launcher.PluginsManifest@plugin_api_v2/plugins.json 15:50:33.7436-05:00 - INFO - PluginManager.InitializePluginsAsync - Total init cost for <System Commands> is <230ms> 15:50:33.7497-05:00 - INFO - PluginManager.InitializePluginsAsync - Total init cost for <FlowTrumpet> is <265ms> 15:50:33.7497-05:00 - INFO - PluginManager.InitializePluginsAsync - Total init cost for <Web Searches> is <239ms> 15:50:33.7497-05:00 - INFO - PluginManager.InitializePluginsAsync - Total init cost for <Number Converter> is <238ms> 15:50:33.7669-05:00 - INFO - PluginManager.InitializePluginsAsync - Total init cost for <Windows Settings> is <253ms> 15:50:33.7669-05:00 - INFO - PluginManager.InitializePluginsAsync - Total init cost for <Explorer> is <267ms> 15:50:33.7669-05:00 - INFO - CommunityPluginSource.FetchAsync - Loading plugins from https://gcore.jsdelivr.net/gh/Flow-Launcher/Flow.Launcher.PluginsManifest@plugin_api_v2/plugins.json 15:50:33.7669-05:00 - INFO - CommunityPluginSource.FetchAsync - Loading plugins from https://cdn.jsdelivr.net/gh/Flow-Launcher/Flow.Launcher.PluginsManifest@plugin_api_v2/plugins.json 15:50:33.7669-05:00 - INFO - CommunityPluginSource.FetchAsync - Loading plugins from https://raw.githubusercontent.com/Flow-Launcher/Flow.Launcher.PluginsManifest/plugin_api_v2/plugins.json 15:50:33.7795-05:00 - INFO - PluginManager.InitializePluginsAsync - Total init cost for <Win Hotkey> is <270ms> 15:50:33.7795-05:00 - INFO - Main.InitAsync - Preload programs cost <11ms> 15:50:33.7795-05:00 - INFO - Main.InitAsync - Number of preload win32 programs <158> 15:50:33.7795-05:00 - INFO - Main.InitAsync - Number of preload uwps <36> 15:50:33.7795-05:00 - INFO - PluginManager.InitializePluginsAsync - Total init cost for <Program> is <266ms> 15:50:33.7795-05:00 - INFO - PluginManager.InitializePluginsAsync - Total init cost for <Browser Bookmarks> is <269ms> 15:50:33.7795-05:00 - INFO - PluginManager.InitializePluginsAsync - Total init cost for <Browser History> is <270ms> 15:50:33.7795-05:00 - INFO - PluginManager.InitializePluginsAsync - Total init cost for <Ollama> is <269ms> 15:50:33.9433-05:00 - ERROR - - ------------- BEGIN Flow.Launcher.Plugin.Program exception ------------- 15:50:33.9433-05:00 - ERROR - - Exception full name: System.Runtime.InteropServices.COMException Error status: UNKNOWN Class name: IShellLinkW Calling method: retrieveTargetPath Program path: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows Media Player Legacy.lnk InnerException number: 1 Exception message: Error HRESULT E_FAIL has been returned from a call to a COM component. Exception error type: HResult -2147467259 Exception thrown in called method: Void GetDescription(Windows.Win32.Foundation.PWSTR, Int32) Possible interpretation of the error: Error caused likely due to trying to get the description of the program Possible resolution: Not yet known 15:50:33.9433-05:00 - ERROR - - ------------- END Flow.Launcher.Plugin.Program exception ------------- 15:50:34.2309-05:00 - INFO - Main.IndexProgramsAsync - Win32Program index cost <449ms> 15:50:34.3426-05:00 - INFO - CommunityPluginSource.FetchAsync - Loaded 255 plugins from https://fastly.jsdelivr.net/gh/Flow-Launcher/Flow.Launcher.PluginsManifest@plugin_api_v2/plugins.json 15:50:34.3426-05:00 - INFO - CommunityPluginSource.FetchAsync - Loaded 255 plugins from https://cdn.jsdelivr.net/gh/Flow-Launcher/Flow.Launcher.PluginsManifest@plugin_api_v2/plugins.json 15:50:34.3426-05:00 - WARN - CommunityPluginSource.FetchAsync - Failed to load resource https://gcore.jsdelivr.net/gh/Flow-Launcher/Flow.Launcher.PluginsManifest@plugin_api_v2/plugins.json with response InternalServerError 15:50:34.3563-05:00 - ERROR - CommunityPluginSource.FetchAsync - Error Occurred EXCEPTION OCCURS: System.Threading.Tasks.TaskCanceledException: The operation was canceled. ---> System.IO.IOException: Unable to read data from the transport connection: The I/O operation has been aborted because of either a thread exit or an application request.. ---> System.Net.Sockets.SocketException (995): The I/O operation has been aborted because of either a thread exit or an application request. --- End of inner exception stack trace --- at void System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken) at async ValueTask System.Net.Security.SslStream.EnsureFullTlsFrameAsync<TIOAdapter>(CancellationToken cancellationToken) at async ValueTask System.Net.Security.SslStream.ReadAsyncInternal<TIOAdapter>(Memory buffer, CancellationToken cancellationToken) at async ValueTask System.Net.Http.HttpConnection.ReadAsync(Memory destination) at async ValueTask System.Net.Http.HttpConnection+ContentLengthReadStream.ReadAsync(Memory buffer, CancellationToken cancellationToken) --- End of inner exception stack trace --- at async ValueTask System.Net.Http.HttpConnection+ContentLengthReadStream.ReadAsync(Memory buffer, CancellationToken cancellationToken) at async ValueTask<ReadBufferState> System.Text.Json.Serialization.ReadBufferState.ReadFromStreamAsync(Stream utf8Json, CancellationToken cancellationToken, bool fillBuffer) at async ValueTask<T> System.Text.Json.Serialization.Metadata.JsonTypeInfo<T>.DeserializeAsync(Stream utf8Json, CancellationToken cancellationToken) at async Task<T> System.Net.Http.Json.HttpContentJsonExtensions.ReadFromJsonAsyncCore<T>(HttpContent content, Encoding sourceEncoding, JsonSerializerOptions options, CancellationToken cancellationToken) at async Task<List<UserPlugin>> Flow.Launcher.Core.ExternalPlugins.CommunityPluginSource.FetchAsync(CancellationToken token) in C:/projects/flow-launcher/Flow.Launcher.Core/ExternalPlugins/CommunityPluginSource.cs:line 57

15:50:34.3563-05:00 - INFO - PluginManager.InitializePluginsAsync - Total init cost for <Plugins Manager> is <842ms> 15:50:34.3831-05:00 - INFO - Main.IndexProgramsAsync - UWPProgram index cost <602ms> 15:50:34.9546-05:00 - INFO - ImageLoader.InitializeAsync - Preload images cost <1430ms> 15:50:34.9546-05:00 - INFO - ImageLoader.InitializeAsync - Number of preload images is <150>, Images Number: 150, Unique Items 107 15:50:35.0215-05:00 - INFO - App.OnStartup - End Flow Launcher startup ---------------------------------------------------- 15:50:35.0215-05:00 - INFO - App.OnStartup - Startup cost <1728ms> 15:50:35.6091-05:00 - INFO - Updater.UpdateAppAsync - Future Release <{ "SHA1": "3BC9FA6AC2A0444BDE365A65D25006E4AE81AF7F", "BaseUrl": null, "Filename": "FlowLauncher-1.20.1-full.nupkg", "Query": null, "Filesize": 84925464, "IsDelta": false, "StagingPercentage": null, "EntryAsString": "3BC9FA6AC2A0444BDE365A65D25006E4AE81AF7F FlowLauncher-1.20.1-full.nupkg 84925464", "Version": { "Version": "1.20.1.0", "SpecialVersion": "" }, "PackageName": "FlowLauncher" }>

j-a-s-o-n-g avatar Jun 14 '25 21:06 j-a-s-o-n-g

Possible related to WPF rendering

Jack251970 avatar Jun 15 '25 09:06 Jack251970

And I found this issue happened more frequently when opening ui elements with ListView control

Jack251970 avatar Jun 15 '25 09:06 Jack251970

From what I can understand. I had the same kind of issue, but it was like when I'm opening the settings page, it would randomly become freezed, so like after seeing that, even clicking won't work, and switching between different sections Especially like the general and the appearance and the plugin store, it lags a lot. And also for the randomly freezed issue, well I have to activate Flow Launcher Which would Then actually activate the window. Which is pretty weird.

TechySC23 avatar Jun 17 '25 16:06 TechySC23

Same here. I've only played with it briefly, but I noticed that all Settings menu items were locked out, but the 'X' to close on title bar still responded - not sure if that's a clue to anything? On opening again, all works as expected.

I'll do some more digging later, see if I can spot something more useful....

dcog989 avatar Jul 10 '25 13:07 dcog989

Every time the setting window is unresponsive, if I open the main window with hotkey, the setting window will start to work again

Jack251970 avatar Jul 10 '25 14:07 Jack251970

So, after having Flow run for a few minutes, it started chewing up a couple of threads @ 100%. I disabled every plugin, one at a time, and it made no difference.

I let it run for about 30 minutes, chewing up the threads, but it just continued.

I then opened Settings > Plugin Store and the UI locked up - but still responded to 'X' to close. Open Plugin Store again and it doesn't lock up.

@Jack251970 - are you getting ~100% CPU on a thread or two when this happens?

I noticed when compiling last night that a lot of the packages are out of date (for minor or patch). Plus this - https://github.com/advisories/GHSA-2cmq-823j-5qj8 ... Maybe something there?

EDIT - with plugins disabled, the high CPU does not happen, so I will now enable them to find the culprit.

dcog989 avatar Jul 10 '25 14:07 dcog989

So, after having Flow run for a few minutes, it started chewing up a couple of threads @ 100%. I disabled every plugin, one at a time, and it made no difference.

I let it run for about 30 minutes, chewing up the threads, but it just continued.

I then opened Settings > Plugin Store and the UI locked up - but still responded to 'X' to close. Open Plugin Store again and it doesn't lock up.

@Jack251970 - are you getting ~100% CPU on a thread or two when this happens?

Currently I am waiting for tests with introduction of new UI framework (#3593) because based on my observation, this issue is very similar to second window freezing issue in WPF and new UI framework can handle this problem perhaps.

I noticed when compiling last night that a lot of the packages are out of date (for minor or patch). Plus this - GHSA-2cmq-823j-5qj8 ... Maybe something there?

Personally I would like to upgrade all packages when .net 9.0 is introduced into Flow (#3286) because some packages with new version can have conflictions with .net 7.0 which is the dotnet framework we are using currently.

Jack251970 avatar Jul 10 '25 14:07 Jack251970

Thanks for the links. I will continue digging, but keep in mind the .net / UI changes incoming.

introduction of new UI framework

Good to see as ModernWpf hasn't been maintained for many years.

upgrade all packages when .net 9.0 is introduced

But in theory (!) patch and minor version upgrades should not bring breaking changes? E.g. Flow is using 2.1.1 with some nice bug fixes waiting - https://github.com/sbaeumlisberger/VirtualizingWrapPanel/releases or https://github.com/microsoft/vs-streamjsonrpc/releases/tag/v2.21.69

Low risk for good bug fixes?

dcog989 avatar Jul 10 '25 15:07 dcog989

But in theory (!) patch and minor version upgrades should not bring breaking changes? E.g. Flow is using 2.1.1 with some nice bug fixes waiting - https://github.com/sbaeumlisberger/VirtualizingWrapPanel/releases or https://github.com/microsoft/vs-streamjsonrpc/releases/tag/v2.21.69

Low risk for good bug fixes?

Since .net9.0 PR is on the 2.0.0 milestone (our next version), these upgrades will come out with it. Thanks for reminding me about this, and I will create a PR once .net9.0 PR is merged.

Jack251970 avatar Jul 10 '25 15:07 Jack251970

https://github.com/Flow-Launcher/Flow.Launcher/issues/3748#issuecomment-3058334569

So far, testing my Bookmark fix, the Settings UI has not locked up.

I'm preparing the PR now.

dcog989 avatar Jul 10 '25 18:07 dcog989

I just had Settings window lock up after going to Plugins > System Commands > [change Action keyword], so the above PR sadly has not fixed the issue.

dcog989 avatar Jul 10 '25 21:07 dcog989

@j-a-s-o-n-g @TechySC23 @dcog989 Hi, I wonder if #3593 have resolved your issues?

https://ci.appveyor.com/project/JohnTheGr8/flow-launcher/builds/52430385/artifacts

Jack251970 avatar Jul 19 '25 14:07 Jack251970

That seems to have fixed it - plus Settings dialog much more responsive now.

dcog989 avatar Jul 20 '25 16:07 dcog989

That seems to have fixed it - plus Settings dialog much more responsive now.

This issue had been bothering me for a long time until the recent update. before that i could barely access the settings interface from the system tray. Whenever I attempted to do so, the settings window would freeze completely.

EssentialCuber avatar Jul 24 '25 00:07 EssentialCuber

That seems to have fixed it - plus Settings dialog much more responsive now.

This issue had been bothering me for a long time until the recent update. before that i could barely access the settings interface from the system tray. Whenever I attempted to do so, the settings window would freeze completely.

Can this PR fix your issue?

https://ci.appveyor.com/project/JohnTheGr8/flow-launcher/builds/52444142/artifacts

Jack251970 avatar Jul 24 '25 00:07 Jack251970

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 60 days.\n\nAlternatively this issue can be kept open by adding one of the following labels:\nkeep-fresh

github-actions[bot] avatar Sep 22 '25 02:09 github-actions[bot]