Flow-Launcher / Flow.Launcher

:mag: Quick file search & app launcher for Windows with community-made plugins
https://flowlauncher.com
MIT License
7.76k stars 303 forks source link

Program plugin doesn't work #209

Closed kubalav closed 3 years ago

kubalav commented 3 years ago

Program plugin doesn't show result in latest version. I tried clean installation.

taooceros commented 3 years ago

Could You please upload the log so that it will be easier to debug? Maybe try reindex in program plugin setting?

kubalav commented 3 years ago

I tried reindex. 2020-11-16.txt

taooceros commented 3 years ago
2020-11-16 07:38:48.5187|ERROR||------------- BEGIN Flow.Launcher.Plugin.Program exception -------------
2020-11-16 07:38:48.5187|ERROR||
Exception full name: System.Runtime.InteropServices.COMException
Error status: KNOWN
Class name: Win32
Calling method: LnkProgram
Program path: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows Media Player.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(System.Text.StringBuilder, Int32)
Possible interpretation of the error: Error caused likely due to trying to get the description of the program
Possible resolution: Can be ignored and Flow Launcher should still continue, however the program may not be loaded
2020-11-16 07:38:48.5187|ERROR||------------- END Flow.Launcher.Plugin.Program exception -------------

Let me take a look, but I think if there is only two program that is unable to load, other programs should be loaded successfully.

kubalav commented 3 years ago

It doesn't work at all.

taooceros commented 3 years ago

Would you try open Flow with Administer Authorization? One of the log suggests Access denied. I have just checked the win32 indexing and it works for me. By the way, is any UWP app can be loaded?

kubalav commented 3 years ago

I runs Flow with Admin access. I see UWP app only, not win32.

taooceros commented 3 years ago

Let's try clicking this button and see what we get. image

kubalav commented 3 years ago

UWP only from C: drive flow_progra_plugin_all_program_list

jjw24 commented 3 years ago

Hey @kubalav how's it going, can you see if previous flow version has the same problem for plugin?

Also are you able to boot into windows sandbox and try?

I am away from comp most of the day, will take a look at your log later.

taooceros commented 3 years ago

https://github.com/Flow-Launcher/Flow.Launcher/blob/fd56af77dc96d0e2e10a5b43254c4981d915afe4/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs#L239-L248

2020-11-16 07:38:48.6752|ERROR||------------- BEGIN Flow.Launcher.Plugin.Program exception -------------
2020-11-16 07:38:48.6752|ERROR||
Exception full name: System.AggregateException
Error status: UNKNOWN
Class name: Win32
Calling method: All
Program path: Not available
InnerException number: 1
Exception message: One or more errors occurred. (One or more errors occurred. (Access to the path 'E:\System Volume Information' is denied.)) (Access to the path 'E:\System Volume Information' is denied.)
Exception error type: HResult -2146233088
Exception thrown in called method: Void QueryEnd(Boolean)
Possible interpretation of the error: An unexpected error occurred
Possible resolution: Not yet known
2020-11-16 07:38:48.6752|ERROR||
Exception full name: System.UnauthorizedAccessException
Error status: KNOWN
Class name: Win32
Calling method: All
Program path: Not available
InnerException number: 2
Exception message: Access to the path 'E:\System Volume Information' is denied.
Exception error type: HResult -2147024891
Exception thrown in called method: IntPtr CreateRelativeDirectoryHandle(System.ReadOnlySpan`1[System.Char], System.String)
Possible interpretation of the error: An unexpected error occurred
Possible resolution: Can be ignored and Flow Launcher should still continue, however the program may not be loaded
2020-11-16 07:38:48.6752|ERROR||------------- END Flow.Launcher.Plugin.Program exception -------------

@kubalav I think this error block the All function to create index. So,maybe try to remove E:\ from program file source and reindex? But why does that throw?

kubalav commented 3 years ago

Hey @kubalav how's it going, can you see if previous flow version has the same problem for plugin?

Also are you able to boot into windows sandbox and try?

I am away from comp most of the day, will take a look at your log later.

I tried Window Sandbox a few times. I tried new WS config (without shared folders) and Program plugin works. I copied this portable version to normal computer and changed index path to Program Files. Not working.

kubalav commented 3 years ago

@taooceros I kept Program files only, no success.

taooceros commented 3 years ago

I copied this portable version to normal computer and changed index path to Program Files. Not working.

Well, I don't think the program plugin need to include index path to Program Files for working. I have tried portable mode in my computer, and it seems working correctly.

Sorry for the troubles, but could you please update the logs without E:\

taooceros commented 3 years ago

I think I found the potential reason of why one single exception may block the whole index from creation. It maybe cause by the use of IEnumerable, which contains the characteristics of lazy processing, so the try catch within each sub index method doesn't catch the processing error elsewhere?

Let me change the indexing contruction of program plugin a few, and check whether it is because of that.

kubalav commented 3 years ago

The latest log: 2020-11-16.log

Other partition like C: doesn't work. I trie E: on other computer, C: drive works only.

taooceros commented 3 years ago

@kubalav Flow.Launcher.Plugin.Program.zip Could you please replace the program plugin in the current FlowLaucher Plugin folder with this one and try?

kubalav commented 3 years ago

@kubalav Flow.Launcher.Plugin.Program.zip Could you please replace the program plugin in the current FlowLaucher Plugin folder with this one and try?

No change.

taooceros commented 3 years ago

Have you reindexed? If you have done it, please paste the log.

Sorry for the troubles.😖

kubalav commented 3 years ago

Reindexed, restarted Flow. 2020-11-16.log

taooceros commented 3 years ago

Sorry there is some error on the log, Let me take a look on it.

taooceros commented 3 years ago

But I haven't seen the exception of Aggregate exception, is there any win32 program exist on the result view now?

kubalav commented 3 years ago

I see some win32 apps now (stored in C: drive).

taooceros commented 3 years ago

Nice! Let's try E:

kubalav commented 3 years ago

After adding E: drive

2020-11-16 15:13:50.5523|ERROR||fail to log exception in program logger, parts length is too small: 1, message: Permission denied E:\
2020-11-16 15:13:50.5920|ERROR||------------- BEGIN Flow.Launcher.Plugin.Program exception -------------
2020-11-16 15:13:50.5920|ERROR||
Exception full name: System.AggregateException
Error status: UNKNOWN
Class name: Win32
Calling method: All
Program path: Not available
InnerException number: 1
Exception message: One or more errors occurred. (One or more errors occurred. (Index was outside the bounds of the array.)) (Index was outside the bounds of the array.)
Exception error type: HResult -2146233088
Exception thrown in called method: Void QueryEnd(Boolean)
Possible interpretation of the error: An unexpected error occurred
Possible resolution: Not yet known
2020-11-16 15:13:50.5920|ERROR||
Exception full name: System.IndexOutOfRangeException
Error status: UNKNOWN
Class name: Win32
Calling method: All
Program path: Not available
InnerException number: 2
Exception message: Index was outside the bounds of the array.
Exception error type: HResult -2146233080
Exception thrown in called method: Void LogException(System.String, System.Exception)
Possible interpretation of the error: An unexpected error occurred
Possible resolution: Not yet known
2020-11-16 15:13:50.5988|ERROR||------------- END Flow.Launcher.Plugin.Program exception -------------
2020-11-16 15:13:52.8489|ERROR||------------- BEGIN Flow.Launcher.Plugin.Program exception -------------
2020-11-16 15:13:52.8489|ERROR||
Exception full name: System.IO.FileNotFoundException
Error status: KNOWN
Class name: UWP
Calling method: LogoPathFromUri
Program path: C:\Windows\SystemApps\Microsoft.Windows.SecHealthUI_cw5n1h2txyewy
InnerException number: 1
Exception message: Unable to find the specified file.
Exception error type: HResult -2147024894
Exception thrown in called method: Not available
Possible interpretation of the error: Microsoft.Windows.SecHealthUI_cw5n1h2txyewy!SecHealthUI can't find logo uri for Assets\Square44x44Logo.png in package location: C:\Windows\SystemApps\Microsoft.Windows.SecHealthUI_cw5n1h2txyewy
Possible resolution: Can be ignored and Flow Launcher should still continue, however the program may not be loaded
2020-11-16 15:13:52.8489|ERROR||------------- END Flow.Launcher.Plugin.Program exception -------------
taooceros commented 3 years ago
var parts = message.Split('|');
            if (parts.Length < 4)
            {
                var logger = LogManager.GetLogger("");
                logger.Error(e, $"fail to log exception in program logger, parts length is too small: {parts.Length}, message: {message}");
            }

            var classname = parts[1];
            var callingMethodName = parts[2];
            var loadingProgramPath = parts[3];
            var interpretationMessage = parts[4];

            LogException(classname, callingMethodName, loadingProgramPath, interpretationMessage, e);

Don't understand why only change the log way when length only less than 4, but actually need to be 5 to be accessed with [4]. Let me change this and could you please use that one to log again?

taooceros commented 3 years ago

Flow.Launcher.Plugin.Program.zip

kubalav commented 3 years ago
2020-11-16 19:02:01.3712|ERROR||------------- BEGIN Flow.Launcher.Plugin.Program exception -------------
2020-11-16 19:02:01.4007|ERROR||
Exception full name: System.Runtime.InteropServices.COMException
Error status: KNOWN
Class name: Win32
Calling method: LnkProgram
Program path: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows Media Player.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(System.Text.StringBuilder, Int32)
Possible interpretation of the error: Error caused likely due to trying to get the description of the program
Possible resolution: Can be ignored and Flow Launcher should still continue, however the program may not be loaded
2020-11-16 19:02:01.4007|ERROR||------------- END Flow.Launcher.Plugin.Program exception -------------
2020-11-16 19:02:03.5663|ERROR||------------- BEGIN Flow.Launcher.Plugin.Program exception -------------
2020-11-16 19:02:03.5663|ERROR||
Exception full name: System.IO.FileNotFoundException
Error status: KNOWN
Class name: UWP
Calling method: LogoPathFromUri
Program path: C:\Windows\SystemApps\Microsoft.Windows.SecHealthUI_cw5n1h2txyewy
InnerException number: 1
Exception message: Unable to find the specified file.
Exception error type: HResult -2147024894
Exception thrown in called method: Not available
Possible interpretation of the error: Microsoft.Windows.SecHealthUI_cw5n1h2txyewy!SecHealthUI can't find logo uri for Assets\Square44x44Logo.png in package location: C:\Windows\SystemApps\Microsoft.Windows.SecHealthUI_cw5n1h2txyewy
Possible resolution: Can be ignored and Flow Launcher should still continue, however the program may not be loaded
2020-11-16 19:02:03.5663|ERROR||------------- END Flow.Launcher.Plugin.Program exception -------------
2020-11-16 19:02:03.9378|ERROR||------------- BEGIN Flow.Launcher.Plugin.Program exception -------------
2020-11-16 19:02:03.9378|ERROR||
Exception full name: System.Runtime.InteropServices.COMException
Error status: KNOWN
Class name: Win32
Calling method: LnkProgram
Program path: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\ODBC Data Sources (32-bit).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(System.Text.StringBuilder, Int32)
Possible interpretation of the error: Error caused likely due to trying to get the description of the program
Possible resolution: Can be ignored and Flow Launcher should still continue, however the program may not be loaded
2020-11-16 19:02:03.9378|ERROR||------------- END Flow.Launcher.Plugin.Program exception -------------
2020-11-16 19:02:05.3538|ERROR||------------- BEGIN Flow.Launcher.Plugin.Program exception -------------
2020-11-16 19:02:05.3538|ERROR||
Exception full name: System.AggregateException
Error status: UNKNOWN
Class name: Win32
Calling method: All
Program path: Not available
InnerException number: 1
Exception message: One or more errors occurred. (One or more errors occurred. (Access to the path 'E:\System Volume Information' is denied.)) (Access to the path 'E:\System Volume Information' is denied.)
Exception error type: HResult -2146233088
Exception thrown in called method: Void QueryEnd(Boolean)
Possible interpretation of the error: An unexpected error occurred
Possible resolution: Not yet known
2020-11-16 19:02:05.3538|ERROR||
Exception full name: System.UnauthorizedAccessException
Error status: KNOWN
Class name: Win32
Calling method: All
Program path: Not available
InnerException number: 2
Exception message: Access to the path 'E:\System Volume Information' is denied.
Exception error type: HResult -2147024891
Exception thrown in called method: IntPtr CreateRelativeDirectoryHandle(System.ReadOnlySpan`1[System.Char], System.String)
Possible interpretation of the error: An unexpected error occurred
Possible resolution: Can be ignored and Flow Launcher should still continue, however the program may not be loaded
2020-11-16 19:02:05.3538|ERROR||------------- END Flow.Launcher.Plugin.Program exception -------------
2020-11-16 19:02:19.9772|ERROR||fail to log exception in program logger, parts length is too small: 3, message: |UWP|ImageFromPath||Unable to get logo for Microsoft.Windows.SecHealthUI_cw5n1h2txyewy!SecHealthUI from  and located in C:\Windows\SystemApps\Microsoft.Windows.SecHealthUI_cw5n1h2txyewy
2020-11-16 19:02:19.9882|ERROR|ResultViewModel.Image|-------------------------- Begin exception --------------------------
2020-11-16 19:02:19.9882|ERROR|ResultViewModel.Image|IcoPath is empty and exception when calling Icon() for result <Windows Zabezpečenie> of plugin <E:\Programy\Nástroje\Súbory\FlowLauncher\app-1.4.0\Plugins\Flow.Launcher.Plugin.Program>
2020-11-16 19:02:19.9882|ERROR|ResultViewModel.Image|Exception full name:
 <System.IndexOutOfRangeException>
2020-11-16 19:02:19.9882|ERROR|ResultViewModel.Image|Exception message:
 <Index was outside the bounds of the array.>
2020-11-16 19:02:20.0049|ERROR|ResultViewModel.Image|Exception stack trace:
 <   at Flow.Launcher.Plugin.Program.Logger.ProgramLogger.LogException(String message, Exception e) in D:\Document\Dotnet\Flow.Launcher\Plugins\Flow.Launcher.Plugin.Program\Logger\ProgramLogger.cs:line 101
   at Flow.Launcher.Plugin.Program.Programs.UWP.Application.ImageFromPath(String path) in D:\Document\Dotnet\Flow.Launcher\Plugins\Flow.Launcher.Plugin.Program\Programs\UWP.cs:line 533
   at Flow.Launcher.Plugin.Program.Programs.UWP.Application.Logo() in D:\Document\Dotnet\Flow.Launcher\Plugins\Flow.Launcher.Plugin.Program\Programs\UWP.cs:line 512
   at Flow.Launcher.ViewModel.ResultViewModel.get_Image() in C:\Workbench\Git\Flow.Launcher\Flow.Launcher\ViewModel\ResultViewModel.cs:line 60>
2020-11-16 19:02:20.0049|ERROR|ResultViewModel.Image|Exception source:
 <Flow.Launcher.Plugin.Program>
2020-11-16 19:02:20.0049|ERROR|ResultViewModel.Image|Exception target site:
 <Void LogException(System.String, System.Exception)>
2020-11-16 19:02:20.0049|ERROR|ResultViewModel.Image|Exception HResult:
 <-2146233080>
2020-11-16 19:02:20.0049|ERROR|ResultViewModel.Image|-------------------------- End exception --------------------------
2020-11-16 19:02:20.1551|ERROR||fail to log exception in program logger, parts length is too small: 3, message: |UWP|ImageFromPath||Unable to get logo for Microsoft.Windows.SecHealthUI_cw5n1h2txyewy!SecHealthUI from  and located in C:\Windows\SystemApps\Microsoft.Windows.SecHealthUI_cw5n1h2txyewy
2020-11-16 19:02:20.1563|ERROR|ResultViewModel.Image|-------------------------- Begin exception --------------------------
2020-11-16 19:02:20.1563|ERROR|ResultViewModel.Image|IcoPath is empty and exception when calling Icon() for result <Windows Zabezpečenie> of plugin <E:\Programy\Nástroje\Súbory\FlowLauncher\app-1.4.0\Plugins\Flow.Launcher.Plugin.Program>
2020-11-16 19:02:20.1563|ERROR|ResultViewModel.Image|Exception full name:
 <System.IndexOutOfRangeException>
2020-11-16 19:02:20.1563|ERROR|ResultViewModel.Image|Exception message:
 <Index was outside the bounds of the array.>
2020-11-16 19:02:20.1563|ERROR|ResultViewModel.Image|Exception stack trace:
 <   at Flow.Launcher.Plugin.Program.Logger.ProgramLogger.LogException(String message, Exception e) in D:\Document\Dotnet\Flow.Launcher\Plugins\Flow.Launcher.Plugin.Program\Logger\ProgramLogger.cs:line 101
   at Flow.Launcher.Plugin.Program.Programs.UWP.Application.ImageFromPath(String path) in D:\Document\Dotnet\Flow.Launcher\Plugins\Flow.Launcher.Plugin.Program\Programs\UWP.cs:line 533
   at Flow.Launcher.Plugin.Program.Programs.UWP.Application.Logo() in D:\Document\Dotnet\Flow.Launcher\Plugins\Flow.Launcher.Plugin.Program\Programs\UWP.cs:line 512
   at Flow.Launcher.ViewModel.ResultViewModel.get_Image() in C:\Workbench\Git\Flow.Launcher\Flow.Launcher\ViewModel\ResultViewModel.cs:line 60>
2020-11-16 19:02:20.1563|ERROR|ResultViewModel.Image|Exception source:
 <Flow.Launcher.Plugin.Program>
2020-11-16 19:02:20.1563|ERROR|ResultViewModel.Image|Exception target site:
 <Void LogException(System.String, System.Exception)>
2020-11-16 19:02:20.1563|ERROR|ResultViewModel.Image|Exception HResult:
 <-2146233080>
2020-11-16 19:02:20.1563|ERROR|ResultViewModel.Image|-------------------------- End exception --------------------------
jjw24 commented 3 years ago

Flow.Launcher.Plugin.Program.zip

Can you give this version a shot and upload logs if still erroring

taooceros commented 3 years ago

Hey @kubalav , after rechecking the code, I found out the last version I give you unintended restore a change that I want to make to catch result separately instead of aggregate exception. My bad, sorry for that.

I think in 1.4.0, I have made the directory enumeration in one single call, which will lead to if one exception has been called, the whole program source folder won't be indexed. Therefore, would you please change the E:\ to maybe a subfolder which won't lead to unauthorize exception? For example, I have made all my programs in D:\ lies into D:\Program Files and enumerate that one, and that works fine.

I have checked my log that the GetDescription Error seems to also behave in my computer, but that seems an acceptable error and doesn't affect the indexing.

Flow.Launcher.Plugin.Program.zip

Sorry for all the inconvenience.

kubalav commented 3 years ago
2020-11-17 09:59:37.1896|ERROR||------------- BEGIN Flow.Launcher.Plugin.Program exception -------------
2020-11-17 09:59:37.1896|ERROR||
Exception full name: System.Runtime.InteropServices.COMException
Error status: KNOWN
Class name: Win32
Calling method: LnkProgram
Program path: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows Media Player.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(System.Text.StringBuilder, Int32)
Possible interpretation of the error: Error caused likely due to trying to get the description of the program
Possible resolution: Can be ignored and Flow Launcher should still continue, however the program may not be loaded
2020-11-17 09:59:37.1896|ERROR||------------- END Flow.Launcher.Plugin.Program exception -------------
2020-11-17 09:59:37.2132|ERROR||------------- BEGIN Flow.Launcher.Plugin.Program exception -------------
2020-11-17 09:59:37.2132|ERROR||
Exception full name: System.Runtime.InteropServices.COMException
Error status: KNOWN
Class name: Win32
Calling method: LnkProgram
Program path: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\ODBC Data Sources (32-bit).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(System.Text.StringBuilder, Int32)
Possible interpretation of the error: Error caused likely due to trying to get the description of the program
Possible resolution: Can be ignored and Flow Launcher should still continue, however the program may not be loaded
2020-11-17 09:59:37.2132|ERROR||------------- END Flow.Launcher.Plugin.Program exception -------------
2020-11-17 09:59:37.2825|ERROR||------------- BEGIN Flow.Launcher.Plugin.Program exception -------------
2020-11-17 09:59:37.2825|ERROR||
Exception full name: System.Runtime.InteropServices.COMException
Error status: KNOWN
Class name: Win32
Calling method: LnkProgram
Program path: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows Media Player.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(System.Text.StringBuilder, Int32)
Possible interpretation of the error: Error caused likely due to trying to get the description of the program
Possible resolution: Can be ignored and Flow Launcher should still continue, however the program may not be loaded
2020-11-17 09:59:37.2825|ERROR||------------- END Flow.Launcher.Plugin.Program exception -------------
2020-11-17 09:59:37.2983|ERROR||------------- BEGIN Flow.Launcher.Plugin.Program exception -------------
2020-11-17 09:59:37.2983|ERROR||
Exception full name: System.Runtime.InteropServices.COMException
Error status: KNOWN
Class name: Win32
Calling method: LnkProgram
Program path: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\ODBC Data Sources (32-bit).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(System.Text.StringBuilder, Int32)
Possible interpretation of the error: Error caused likely due to trying to get the description of the program
Possible resolution: Can be ignored and Flow Launcher should still continue, however the program may not be loaded
2020-11-17 09:59:37.2983|ERROR||------------- END Flow.Launcher.Plugin.Program exception -------------
2020-11-17 09:59:42.4995|ERROR||------------- BEGIN Flow.Launcher.Plugin.Program exception -------------
2020-11-17 09:59:42.4995|ERROR||
Exception full name: System.Runtime.InteropServices.COMException
Error status: KNOWN
Class name: Win32
Calling method: LnkProgram
Program path: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows Media Player.lnk
InnerException number: 1
Exception message: Unspecified error

'Microsoft Edge' violates pattern constraint of '\bms-resource:.{1,256}'.

Exception error type: HResult -2147467259
Exception thrown in called method: Void GetDescription(System.Text.StringBuilder, Int32)
Possible interpretation of the error: Error caused likely due to trying to get the description of the program
Possible resolution: Can be ignored and Flow Launcher should still continue, however the program may not be loaded
2020-11-17 09:59:42.4995|ERROR||------------- END Flow.Launcher.Plugin.Program exception -------------
2020-11-17 09:59:42.5184|ERROR||------------- BEGIN Flow.Launcher.Plugin.Program exception -------------
2020-11-17 09:59:42.5184|ERROR||
Exception full name: System.Runtime.InteropServices.COMException
Error status: KNOWN
Class name: Win32
Calling method: LnkProgram
Program path: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\ODBC Data Sources (32-bit).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(System.Text.StringBuilder, Int32)
Possible interpretation of the error: Error caused likely due to trying to get the description of the program
Possible resolution: Can be ignored and Flow Launcher should still continue, however the program may not be loaded
2020-11-17 09:59:42.5184|ERROR||------------- END Flow.Launcher.Plugin.Program exception -------------
2020-11-17 09:59:42.7856|ERROR||fail to log exception in program logger, parts length is too small: 1, message: Permission denied E:\Programy
2020-11-17 09:59:42.7856|ERROR||------------- BEGIN Flow.Launcher.Plugin.Program exception -------------
2020-11-17 09:59:42.7856|ERROR||
Exception full name: System.AggregateException
Error status: UNKNOWN
Class name: Win32
Calling method: All
Program path: Not available
InnerException number: 1
Exception message: One or more errors occurred. (One or more errors occurred. (Index was outside the bounds of the array.)) (Index was outside the bounds of the array.)
Exception error type: HResult -2146233088
Exception thrown in called method: Void QueryEnd(Boolean)
Possible interpretation of the error: An unexpected error occurred
Possible resolution: Not yet known
2020-11-17 09:59:42.7856|ERROR||
Exception full name: System.IndexOutOfRangeException
Error status: UNKNOWN
Class name: Win32
Calling method: All
Program path: Not available
InnerException number: 2
Exception message: Index was outside the bounds of the array.
Exception error type: HResult -2146233080
Exception thrown in called method: Void LogException(System.String, System.Exception)
Possible interpretation of the error: An unexpected error occurred
Possible resolution: Not yet known
2020-11-17 09:59:42.7856|ERROR||------------- END Flow.Launcher.Plugin.Program exception -------------
2020-11-17 09:59:43.8777|ERROR||------------- BEGIN Flow.Launcher.Plugin.Program exception -------------
2020-11-17 09:59:43.8777|ERROR||
Exception full name: System.IO.FileNotFoundException
Error status: KNOWN
Class name: UWP
Calling method: LogoPathFromUri
Program path: C:\Windows\SystemApps\Microsoft.Windows.SecHealthUI_cw5n1h2txyewy
InnerException number: 1
Exception message: Unable to find the specified file.
Exception error type: HResult -2147024894
Exception thrown in called method: Not available
Possible interpretation of the error: Microsoft.Windows.SecHealthUI_cw5n1h2txyewy!SecHealthUI can't find logo uri for Assets\Square44x44Logo.png in package location: C:\Windows\SystemApps\Microsoft.Windows.SecHealthUI_cw5n1h2txyewy
Possible resolution: Can be ignored and Flow Launcher should still continue, however the program may not be loaded
2020-11-17 09:59:43.8777|ERROR||------------- END Flow.Launcher.Plugin.Program exception -------------
2020-11-17 09:59:56.4726|ERROR||fail to log exception in program logger, parts length is too small: 3, message: |UWP|ImageFromPath||Unable to get logo for Microsoft.Windows.SecHealthUI_cw5n1h2txyewy!SecHealthUI from  and located in C:\Windows\SystemApps\Microsoft.Windows.SecHealthUI_cw5n1h2txyewy
2020-11-17 09:59:56.4751|ERROR|ResultViewModel.Image|-------------------------- Begin exception --------------------------
2020-11-17 09:59:56.4772|ERROR|ResultViewModel.Image|IcoPath is empty and exception when calling Icon() for result <Windows ZabezpeÄŤenie> of plugin <E:\Download\TEST\FlowLauncher\app-1.4.0\Plugins\Flow.Launcher.Plugin.Program>
2020-11-17 09:59:56.4772|ERROR|ResultViewModel.Image|Exception full name:
 <System.IndexOutOfRangeException>
2020-11-17 09:59:56.4772|ERROR|ResultViewModel.Image|Exception message:
 <Index was outside the bounds of the array.>
2020-11-17 09:59:56.4772|ERROR|ResultViewModel.Image|Exception stack trace:
 <   at Flow.Launcher.Plugin.Program.Logger.ProgramLogger.LogException(String message, Exception e) in D:\Document\Dotnet\Flow.Launcher\Plugins\Flow.Launcher.Plugin.Program\Logger\ProgramLogger.cs:line 101
   at Flow.Launcher.Plugin.Program.Programs.UWP.Application.ImageFromPath(String path) in D:\Document\Dotnet\Flow.Launcher\Plugins\Flow.Launcher.Plugin.Program\Programs\UWP.cs:line 533
   at Flow.Launcher.Plugin.Program.Programs.UWP.Application.Logo() in D:\Document\Dotnet\Flow.Launcher\Plugins\Flow.Launcher.Plugin.Program\Programs\UWP.cs:line 517
   at Flow.Launcher.ViewModel.ResultViewModel.get_Image() in C:\Workbench\Git\Flow.Launcher\Flow.Launcher\ViewModel\ResultViewModel.cs:line 60>
2020-11-17 09:59:56.4772|ERROR|ResultViewModel.Image|Exception source:
 <Flow.Launcher.Plugin.Program>
2020-11-17 09:59:56.4772|ERROR|ResultViewModel.Image|Exception target site:
 <Void LogException(System.String, System.Exception)>
2020-11-17 09:59:56.4772|ERROR|ResultViewModel.Image|Exception HResult:
 <-2146233080>
2020-11-17 09:59:56.4772|ERROR|ResultViewModel.Image|-------------------------- End exception --------------------------
jjw24 commented 3 years ago

@taooceros ignore the GetDescription error, those are common ones that has no impact.

Do we know where the error is thrown from? it seems an unhandled exception caught finally by the try catch in 'Win32.All' method.

It's a custom location so assuming it's coming somewhere inside 'UnregisteredPrograms()' call?

taooceros commented 3 years ago

2020-11-17 09:59:42.7856|ERROR||fail to log exception in program logger, parts length is too small: 1, message: Permission denied E:\Programy https://github.com/Flow-Launcher/Flow.Launcher/blob/98630d1af58998e76b24bf8f5c2423d1b1f747a0/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs#L264-L285

Here, so the issue is that we don't have permission to E:\

Exception message: One or more errors occurred. (One or more errors occurred. (Index was outside the bounds of the array.)) (Index was outside the bounds of the array.) Weird, I think at the version I provided, this error has been fixed. It is from the LogException Method in ProgramLogger.cs.

jjw24 commented 3 years ago

2020-11-17 09:59:42.7856|ERROR||fail to log exception in program logger, parts length is too small: 1, message: Permission denied E:\Programy https://github.com/Flow-Launcher/Flow.Launcher/blob/98630d1af58998e76b24bf8f5c2423d1b1f747a0/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs#L264-L285

Here, so the issue is that we don't have permission to E:\

Exception message: One or more errors occurred. (One or more errors occurred. (Index was outside the bounds of the array.)) (Index was outside the bounds of the array.) Weird, I think at the version I provided, this error has been fixed. It is from the LogException Method in ProgramLogger.cs.

logging should be written out to the app's user data directory, if it's thrown from logging his app would terminate and not able to log.

The original error is unauthorised access to 'E:\System Volume Information'

jjw24 commented 3 years ago

@kubalav have you tried my build? Flow.Launcher.Plugin.Program.zip

taooceros commented 3 years ago

logging should be written out to the app's user data directory, if it's thrown from logging his app would terminate and not able to log.

I think since ProgramLogger is not the Global Logger, maybe even though ProgramLogger throws an error, the application won't be terminated since the Global Logger will catch that general error. However, I think this error may terminate the index process and the log process to write to the file. So maybe there is another error that hasn't been logged successfully to the file?

kubalav commented 3 years ago

Reason is unauthorized access to 'E:\System Volume Information' and one other files with restricted access. It would be fine to add exclude list like in Wox.

@jjw24 Your build doesn't help.

taooceros commented 3 years ago

It would be fine to add exclude list like in Wox.

Well, the exclude list does exist in Flow. However, the enumeration way doesn't allow that to work. Maybe it may be better to not use the ToList() method simply from enumeration, but enumerate manually and catch result if fail and continue other enumeration. Let me take a try.

taooceros commented 3 years ago

I found out the method to solve this. Let me finish that and I will post the fix. https://stackoverflow.com/questions/172544/ignore-folders-files-when-directory-getfiles-is-denied-access

taooceros commented 3 years ago

Flow.Launcher.Plugin.Program.zip Take a try, and I think this one will skip all inaccessible folder.

var paths = Directory.EnumerateFiles(directory, "*", new EnumerationOptions
                                                        {
                                                            IgnoreInaccessible = true,
                                                            RecurseSubdirectories = true
                                                        })
                                     .Where(x => suffixes.Contains(Extension(x)));

                return paths;

Fix that by using EnumerationOptions with IgnoreInaccessible instead of SearchOptions.AllDirectory. I have tested it in my computer with an unaccessable folder.

kubalav commented 3 years ago

Not works yet. It still throws:

Exception message: One or more errors occurred. (One or more errors occurred. (Access to the path 'E:\System Volume Information' is denied.)) (Access to the path 'E:\System Volume Information' is denied.)

taooceros commented 3 years ago

Hey @kubalav , sorry I build the wrong version.... I am afk now about 15 minutes, I will upload that again after I get to computer.

taooceros commented 3 years ago

Let's try Flow.Launcher.Plugin.Program.zip

kubalav commented 3 years ago

It seems to work fine.

taooceros commented 3 years ago

Nice! Sorry for all the bothering and troubles and thank you so much for testing @kubalav ! I will create a PR to add the fix.

kubalav commented 3 years ago

Thank you for fixing. 👌

jjw24 commented 3 years ago

Hey @taooceros thank you for the great work :) This is a good find and fix

jjw24 commented 3 years ago

Thank you for your patience while this bug gets dug up as well @kubalav