Skip to content

BUG: Exit Fails when a JSON-RPC V2 Plugin Disconnected #3299

Open
@cibere

Description

@cibere

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

  1. install my flow notifications plugin
  2. use the exit command
  3. ...

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)


Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions