Open
Description
Checks
-
I have checked that this issue has not already been reported.
-
I am using the latest version of Flow Launcher.
Problem Description
When a JSON-RPC V2 plugin disconnects during flow's lifetime, the exit system fails as it attempts to send the close request and can't.
This is mainly an issue that should be resolved as my flow notifications plugin intentionally disconnects at startup after sending the notification, so it doesn't consume unnecessary resources
To Reproduce
- install my flow notifications plugin
- use the exit command
- ...
Screenshots
No response
Flow Launcher Version
1.19.5
Windows Build Number
Microsoft Windows [Version 10.0.22631.4890]
Error Log
Please open new issue in https://github.com/Flow-Launcher/Flow.Launcher/issues
1. Upload log file: C:\Users\default.MyPC\Downloads\FlowLauncher\app-1.19.5\UserData\Logs\1.19.5\2025-02-28.txt
2. Copy below exception message
Flow Launcher version: 1.19.5
OS Version: 22631.4890
IntPtr Length: 8
x64: True
Python Path: C:\Users\default.MyPC\Downloads\FlowLauncher\app-1.19.5\UserData\Environments\Python\PythonEmbeddable-v3.11.4\pythonw.exe
Node Path:
Date: 02/28/2025 08:51:16
Exception:
StreamJsonRpc.ConnectionLostException: The JSON-RPC connection with the remote party was lost before the request could complete.
---> System.OperationCanceledException: The operation was canceled.
at System.Threading.CancellationToken.ThrowOperationCanceledException()
at System.Threading.CancellationToken.ThrowIfCancellationRequested()
at StreamJsonRpc.MessageHandlerBase.WriteAsync(JsonRpcMessage content, CancellationToken cancellationToken)
at StreamJsonRpc.JsonRpc.SendAsync(JsonRpcMessage message, CancellationToken cancellationToken)
at StreamJsonRpc.JsonRpc.InvokeCoreAsync(JsonRpcRequest request, Type expectedResultType, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at StreamJsonRpc.JsonRpc.InvokeCoreAsync(JsonRpcRequest request, Type expectedResultType, CancellationToken cancellationToken)
at StreamJsonRpc.JsonRpc.InvokeCoreAsync[TResult](RequestId id, String targetName, IReadOnlyList`1 arguments, IReadOnlyList`1 positionalArgumentDeclaredTypes, IReadOnlyDictionary`2 namedArgumentDeclaredTypes, CancellationToken cancellationToken, Boolean isParameterObject)
at Flow.Launcher.Core.Plugin.JsonRPCPluginV2.DisposeAsync() in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\JsonRPCPluginV2.cs:line 130
at Flow.Launcher.Core.Plugin.ProcessStreamPluginV2.DisposeAsync() in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\ProcessStreamPluginV2.cs:line 85
at Flow.Launcher.Core.Plugin.PluginManager.DisposePluginsAsync() in C:\projects\flow-launcher\Flow.Launcher.Core\Plugin\PluginManager.cs:line 79
at Flow.Launcher.MainWindow.OnClosing(Object sender, CancelEventArgs e) in C:\projects\flow-launcher\Flow.Launcher\MainWindow.xaml.cs:line 169
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)