creating an app; and have found a few times now. That once Error: Lost ticker connection. happens. A further call on Close() results in blocking at line _ws.CloseAsync(WebSocketCloseStatus.NormalClosure, "", CancellationToken.None).Wait(); in your code of Kite3.
It happens otherwise also. Althou close is called after checking IsConnected. Thou it seems somehow this does not present the correct picture. and public void Close(bool Abort = false) which is in WebSocket is not publicly available through Ticker class.
Since code is in open i can myself add such method. But what i want to know is that it would amount to calling Close( Abort:true ) everytime and would that have any effect at your end. Because usual process of calling Close(). when gets blocked has no way of coming out since it does not have a timeout and i cannot risk blocking/stalling at any level i have to call Close( Abort:true ) .
Just to clarify. you might think why would someone call close after loosing connection. it is not always like that. but before closing a ticker I Disable Reconnect and than close. because App checks if all tickers/connections are closed or not. All tickers/endpoints are closed by disabling reconnect then closing and then nulling the variable at my end. But it gets stuck at the line mentioned above sometimes.