Skip to content

Websocket closes after a while and never reopens #3461

Closed as not planned
Closed as not planned
@chadkouse

Description

Describe the bug

Note: while diagnosing this I sideloaded an apk built from unmodified source a71c2c8 . This behavior is also observed in the official play store version.

  • Run jellyfin on android tv
  • Notice that you can send display messages from the admin dashboard and they are received.
  • Go back to the main android tv home menu
  • Check adb logs to see that the websocket is keeping itself alive every 30 seconds (while application is in the background at this point)
  • Leave it alone for some time (not sure how long - but at least 15-20 min)
  • After some time you will see a websocket connection error in the adb logs
  • Coinciding with this client side error log is a server log indicating the server thinks The remote party closed the WebSocket connection without completing the close handshake.
  • Notice that you are unable to send display messages to the app anymore

Nothing I can do except force-quitting the app, waiting for it to be killed by android, or power cycling the android tv will bring the websocket back.

I've tried poking around at various places in the jellyfin-androidtv code to try to find the right place (and method) to force that websocket to re-initialize, but I have been unsuccessful. I considered that it may be a bug in the SDK but other clients seem to work (like the android client on my phone) - and I assume they use the same SDK.

Expected:
The websocket closes itself when the application is in the background (for some period?) and reopens itself when the application is brought back to the foreground. When the socket connection is interrupted it should be able to reconnect it successfully.

Logs

Client log from adb logcat | grep -i jellyfin -- some redundant parts removed for brevity -- ask me for the whole log if needed


03-22 10:17:26.460  4061  4061 D MediaPlayerList: onActiveSessionsChanged: controller: org.jellyfin.androidtv
03-22 10:17:26.460  4061  4061 D MediaPlayerList: Already have a controller for the player: org.jellyfin.androidtv, updating instead
03-22 10:17:26.487  6589  6589 I jellyfin-apiclient: Response received from: http://10.0.1.100:8096/Videos/2b04a038-089b-8ebe-59d1-defe943e9c41/2b04a038089b8ebe59d1defe943e9c41/Subtitles/0/0/Stream.JSON?format=json
03-22 10:17:26.487  6589  6589 D jellyfin-apiclient: Received response from http://10.0.1.100:8096/Videos/2b04a038-089b-8ebe-59d1-defe943e9c41/2b04a038089b8ebe59d1defe943e9c41/Subtitles/0/0/Stream.JSON?format=json
03-22 10:17:26.528  6589  6589 I jellyfin-apiclient: Response received from: http://10.0.1.100:8096/Sessions/Playing/Progress
03-22 10:17:29.382  6589  6589 D jellyfin-apiclient: Adding request to queue: http://10.0.1.100:8096/Sessions/Playing/Progress
03-22 10:17:29.690  6589  6589 I jellyfin-apiclient: Response received from: http://10.0.1.100:8096/Sessions/Playing/Progress
03-22 10:17:32.391  6589  6589 D jellyfin-apiclient: Adding request to queue: http://10.0.1.100:8096/Sessions/Playing/Progress
03-22 10:17:32.591  6589  6589 I jellyfin-apiclient: Response received from: http://10.0.1.100:8096/Sessions/Playing/Progress
03-22 10:17:33.114  6589  7234 I org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: Receiving (raw) message {"MessageType":"GeneralCommand","MessageId":"2622bf4dd20a49fdb385502f7743cf5e","Data":{"Name":"DisplayMessage","ControllingUserId":"00000000000000000000000000000000","Arguments":{"Header":"","Text":"Intro skipped","TimeoutMs":"2000"}}}
03-22 10:17:33.114  6589  7234 I org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: Receiving (raw) message {"MessageType":"Playstate","MessageId":"e3729b712c034966987a3e1dc7c447c6","Data":{"Command":"Seek","SeekPositionTicks":280000000,"ControllingUserId":"ed9d9bffd1e940358f674e846c44122a"}}
03-22 10:17:33.134  6589  6589 D jellyfin-apiclient: Adding request to queue: http://10.0.1.100:8096/Sessions/Playing/Progress
03-22 10:17:33.426  6589  6589 I jellyfin-apiclient: Response received from: http://10.0.1.100:8096/Sessions/Playing/Progress
03-22 10:17:36.135  6589  6589 D jellyfin-apiclient: Adding request to queue: http://10.0.1.100:8096/Sessions/Playing/Progress
03-22 10:17:36.384  6589  6589 I jellyfin-apiclient: Response received from: http://10.0.1.100:8096/Sessions/Playing/Progress
03-22 10:17:37.286  3902  6934 W NotificationService: Toast already killed. pkg=org.jellyfin.androidtv token=android.os.BinderProxy@b8ea5c2
03-22 10:17:38.978  3902  6934 I MediaFocusControl: abandonAudioFocus() from uid/pid 10107/6589 clientId=android.media.AudioManager@f92f282org.jellyfin.androidtv.ui.playback.CustomPlaybackOverlayFragment$6@a010d93
03-22 10:17:38.984  3902  6934 I MediaFocusControl: abandonAudioFocus() from uid/pid 10107/6589 clientId=android.media.AudioManager@f92f282org.jellyfin.androidtv.ui.playback.CustomPlaybackOverlayFragment$6@a010d93
03-22 10:17:38.990  6589  6589 I jellyfin-apiclient: ReportPlaybackStopped: Item 2b04a038-089b-8ebe-59d1-defe943e9c41, Ticks: 332660000
03-22 10:17:38.991  6589  6589 D jellyfin-apiclient: Adding request to queue: http://10.0.1.100:8096/Sessions/Playing/Stopped
03-22 10:17:39.082  6589  6589 D jellyfin-apiclient: Adding request to queue: http://10.0.1.100:8096/Users/ed9d9bff-d1e9-4035-8f67-4e846c44122a/Items/2b04a038-089b-8ebe-59d1-defe943e9c41?format=json
03-22 10:17:39.147  6589  6589 I jellyfin-apiclient: Response received from: http://10.0.1.100:8096/Users/ed9d9bff-d1e9-4035-8f67-4e846c44122a/Items/2b04a038-089b-8ebe-59d1-defe943e9c41?format=json
03-22 10:17:39.208  6589  6589 D jellyfin-apiclient: Adding request to queue: http://10.0.1.100:8096/Shows/33076d91eed90ef78b5636bc48960a34/Episodes?AdjacentTo=2b04a038089b8ebe59d1defe943e9c41&UserId=ed9d9bff-d1e9-4035-8f67-4e846c44122a&format=json
03-22 10:17:39.216  6589  6589 D jellyfin-apiclient: Adding request to queue: http://10.0.1.100:8096/Users/ed9d9bff-d1e9-4035-8f67-4e846c44122a/Items?ParentId=d38c764b1d97e59a8cda075babf0c325&StartIndex=1&recursive=false&Fields=PrimaryImageAspectRatio%2COverview%2CItemCounts%2CDisplayPreferencesId%2CChildCount&Limit=20&IncludeItemTypes=Episode&format=json
03-22 10:17:39.325  6589  6589 I jellyfin-apiclient: Response received from: http://10.0.1.100:8096/Shows/33076d91eed90ef78b5636bc48960a34/Episodes?AdjacentTo=2b04a038089b8ebe59d1defe943e9c41&UserId=ed9d9bff-d1e9-4035-8f67-4e846c44122a&format=json
03-22 10:17:39.328  6589  6589 I jellyfin-apiclient: Response received from: http://10.0.1.100:8096/Users/ed9d9bff-d1e9-4035-8f67-4e846c44122a/Items?ParentId=d38c764b1d97e59a8cda075babf0c325&StartIndex=1&recursive=false&Fields=PrimaryImageAspectRatio%2COverview%2CItemCounts%2CDisplayPreferencesId%2CChildCount&Limit=20&IncludeItemTypes=Episode&format=json
03-22 10:17:39.850  6589  6589 D jellyfin-apiclient: Adding request to queue: http://10.0.1.100:8096/Users/ed9d9bff-d1e9-4035-8f67-4e846c44122a/Items/2b04a038-089b-8ebe-59d1-defe943e9c41?format=json
03-22 10:17:39.869  6589  6589 I jellyfin-apiclient: Response received from: http://10.0.1.100:8096/Users/ed9d9bff-d1e9-4035-8f67-4e846c44122a/Items/2b04a038-089b-8ebe-59d1-defe943e9c41?format=json
03-22 10:17:39.923  6589  6589 D jellyfin-apiclient: Adding request to queue: http://10.0.1.100:8096/Shows/33076d91eed90ef78b5636bc48960a34/Episodes?AdjacentTo=2b04a038089b8ebe59d1defe943e9c41&UserId=ed9d9bff-d1e9-4035-8f67-4e846c44122a&format=json
03-22 10:17:39.932  6589  6589 D jellyfin-apiclient: Adding request to queue: http://10.0.1.100:8096/Users/ed9d9bff-d1e9-4035-8f67-4e846c44122a/Items?ParentId=d38c764b1d97e59a8cda075babf0c325&StartIndex=1&recursive=false&Fields=PrimaryImageAspectRatio%2COverview%2CItemCounts%2CDisplayPreferencesId%2CChildCount&Limit=20&IncludeItemTypes=Episode&format=json
03-22 10:17:40.013  6589  6589 I jellyfin-apiclient: Response received from: http://10.0.1.100:8096/Shows/33076d91eed90ef78b5636bc48960a34/Episodes?AdjacentTo=2b04a038089b8ebe59d1defe943e9c41&UserId=ed9d9bff-d1e9-4035-8f67-4e846c44122a&format=json
03-22 10:17:40.015  6589  6589 I jellyfin-apiclient: Response received from: http://10.0.1.100:8096/Users/ed9d9bff-d1e9-4035-8f67-4e846c44122a/Items?ParentId=d38c764b1d97e59a8cda075babf0c325&StartIndex=1&recursive=false&Fields=PrimaryImageAspectRatio%2COverview%2CItemCounts%2CDisplayPreferencesId%2CChildCount&Limit=20&IncludeItemTypes=Episode&format=json
03-22 10:17:40.550  6589  7279 I org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: Sending (raw) message {"MessageType":"KeepAlive","Data":{}}
03-22 10:17:40.565  6589  7234 I org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: Receiving (raw) message {"MessageType":"KeepAlive","MessageId":"a182d7ac0c164e4eb1532088187ec108"}
03-22 10:17:40.729  6589  6589 I jellyfin-apiclient: Response received from: http://10.0.1.100:8096/Sessions/Playing/Stopped
03-22 10:17:41.201  6589  6589 D jellyfin-apiclient: Adding request to queue: http://10.0.1.100:8096/Users/ed9d9bff-d1e9-4035-8f67-4e846c44122a/Items/33076d91-eed9-0ef7-8b56-36bc48960a34?format=json
03-22 10:17:41.218  6589  6589 I jellyfin-apiclient: Response received from: http://10.0.1.100:8096/Users/ed9d9bff-d1e9-4035-8f67-4e846c44122a/Items/33076d91-eed9-0ef7-8b56-36bc48960a34?format=json
03-22 10:17:41.221  6589  7234 I org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: Receiving (raw) message {"MessageType":"UserDataChanged","MessageId":"f9b90a9ad8fa46c584d32c4009cb4c27","Data":{"UserId":"ed9d9bffd1e940358f674e846c44122a","UserDataList":[{"PlaybackPositionTicks":0,"PlayCount":41,"IsFavorite":false,"LastPlayedDate":"2024-03-22T14:17:24.904458Z","Played":false,"Key":"75897012001","ItemId":"2b04a038089b8ebe59d1defe943e9c41"},{"UnplayedItemCount":14,"PlaybackPositionTicks":0,"PlayCount":0,"IsFavorite":false,"Played":false,"Key":"75897012","ItemId":"d38c764b1d97e59a8cda075babf0c325"}]}}
03-22 10:17:41.281  6589  6589 D jellyfin-apiclient: Adding request to queue: http://10.0.1.100:8096/Shows/NextUp?Fields=PrimaryImageAspectRatio%2CChildCount&SeriesId=33076d91eed90ef78b5636bc48960a34&UserId=ed9d9bff-d1e9-4035-8f67-4e846c44122a&format=json
03-22 10:17:41.282  6589  6589 D jellyfin-apiclient: Adding request to queue: http://10.0.1.100:8096/Shows/33076d91eed90ef78b5636bc48960a34/Seasons?Fields=PrimaryImageAspectRatio%2CDisplayPreferencesId%2CChildCount&UserId=ed9d9bff-d1e9-4035-8f67-4e846c44122a&format=json
03-22 10:17:41.282  6589  6589 D jellyfin-apiclient: Adding request to queue: http://10.0.1.100:8096/Shows/Upcoming?Fields=PrimaryImageAspectRatio%2CChildCount&UserId=ed9d9bff-d1e9-4035-8f67-4e846c44122a&format=json
03-22 10:17:41.285  6589  6589 D jellyfin-apiclient: Adding request to queue: http://10.0.1.100:8096/Items/33076d91eed90ef78b5636bc48960a34/Similar?Fields=PrimaryImageAspectRatio%2CDisplayPreferencesId%2CChildCount&UserId=ed9d9bff-d1e9-4035-8f67-4e846c44122a&Limit=20&format=json
03-22 10:17:41.330  6589  6589 I jellyfin-apiclient: Response received from: http://10.0.1.100:8096/Shows/NextUp?Fields=PrimaryImageAspectRatio%2CChildCount&SeriesId=33076d91eed90ef78b5636bc48960a34&UserId=ed9d9bff-d1e9-4035-8f67-4e846c44122a&format=json
03-22 10:17:41.335  6589  6589 D jellyfin-apiclient: Adding request to queue: http://10.0.1.100:8096/Users/ed9d9bff-d1e9-4035-8f67-4e846c44122a/Items?ParentId=d38c764b-1d97-e59a-8cda-075babf0c325&StartIndex=1&recursive=false&Fields=PrimaryImageAspectRatio%2COverview%2CItemCounts%2CDisplayPreferencesId%2CChildCount&format=json
03-22 10:17:41.369  6589  6589 I jellyfin-apiclient: Response received from: http://10.0.1.100:8096/Shows/Upcoming?Fields=PrimaryImageAspectRatio%2CChildCount&UserId=ed9d9bff-d1e9-4035-8f67-4e846c44122a&format=json
03-22 10:17:41.401  6589  6589 I jellyfin-apiclient: Response received from: http://10.0.1.100:8096/Shows/33076d91eed90ef78b5636bc48960a34/Seasons?Fields=PrimaryImageAspectRatio%2CDisplayPreferencesId%2CChildCount&UserId=ed9d9bff-d1e9-4035-8f67-4e846c44122a&format=json
03-22 10:17:41.411  6589  6589 I jellyfin-apiclient: Response received from: http://10.0.1.100:8096/Users/ed9d9bff-d1e9-4035-8f67-4e846c44122a/Items?ParentId=d38c764b-1d97-e59a-8cda-075babf0c325&StartIndex=1&recursive=false&Fields=PrimaryImageAspectRatio%2COverview%2CItemCounts%2CDisplayPreferencesId%2CChildCount&format=json
03-22 10:17:41.428  6589  6589 I jellyfin-apiclient: Response received from: http://10.0.1.100:8096/Items/33076d91eed90ef78b5636bc48960a34/Similar?Fields=PrimaryImageAspectRatio%2CDisplayPreferencesId%2CChildCount&UserId=ed9d9bff-d1e9-4035-8f67-4e846c44122a&Limit=20&format=json
03-22 10:17:42.527  6589  6589 D ACRA    : onActivityPaused class org.jellyfin.androidtv.ui.browsing.MainActivity
03-22 10:17:43.145  6589  6589 D ACRA    : onActivityStopped class org.jellyfin.androidtv.ui.browsing.MainActivity
03-22 10:17:43.148  6589  6589 D ACRA    : onActivitySaveInstanceState class org.jellyfin.androidtv.ui.browsing.MainActivity
03-22 10:18:10.551  6589  7279 I org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: Sending (raw) message {"MessageType":"KeepAlive","Data":{}}
03-22 10:18:10.555  6589  7234 I org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: Receiving (raw) message {"MessageType":"KeepAlive","MessageId":"053ef96eb98040ec9338f2328f406891"}
03-22 10:18:40.591  6589  7226 I org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: Sending (raw) message {"MessageType":"KeepAlive","Data":{}}
03-22 10:18:40.605  6589  7234 I org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: Receiving (raw) message {"MessageType":"KeepAlive","MessageId":"51cb27bb0bee40fcb7cd4638c84ae762"}
03-22 10:19:10.631  6589  7226 I org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: Sending (raw) message {"MessageType":"KeepAlive","Data":{}}

---- repeats ----

03-22 10:39:12.198  6589  7803 I org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: Sending (raw) message {"MessageType":"KeepAlive","Data":{}}
03-22 10:39:12.204  6589  7234 I org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: Receiving (raw) message {"MessageType":"KeepAlive","MessageId":"db0f0f02e7814f01a1dd0844fc355979"}
03-22 10:39:42.230  6589  7806 I org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: Sending (raw) message {"MessageType":"KeepAlive","Data":{}}
03-22 10:39:42.239  6589  7234 I org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: Receiving (raw) message {"MessageType":"KeepAlive","MessageId":"fdd01edb9d7f48679a14ff4b5946e6ee"}
03-22 10:39:46.928  6589  7234 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: WebSocket has failed
03-22 10:39:46.928  6589  7234 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: java.net.SocketException: Software caused connection abort
03-22 10:39:46.928  6589  7234 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.SocketInputStream.socketRead0(Native Method)
03-22 10:39:46.928  6589  7234 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.SocketInputStream.socketRead(SocketInputStream.java:119)
03-22 10:39:46.928  6589  7234 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.SocketInputStream.read(SocketInputStream.java:176)
03-22 10:39:46.928  6589  7234 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.SocketInputStream.read(SocketInputStream.java:144)
03-22 10:39:46.928  6589  7234 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okio.InputStreamSource.read(JvmOkio.kt:93)
03-22 10:39:46.928  6589  7234 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okio.AsyncTimeout$source$1.read(AsyncTimeout.kt:153)
03-22 10:39:46.928  6589  7234 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okio.RealBufferedSource.request(RealBufferedSource.kt:210)
03-22 10:39:46.928  6589  7234 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okio.RealBufferedSource.require(RealBufferedSource.kt:203)
03-22 10:39:46.928  6589  7234 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okio.RealBufferedSource.readByte(RealBufferedSource.kt:213)
03-22 10:39:46.928  6589  7234 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.ws.WebSocketReader.readHeader(WebSocketReader.kt:119)
03-22 10:39:46.928  6589  7234 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.kt:102)
03-22 10:39:46.928  6589  7234 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.kt:293)
03-22 10:39:46.928  6589  7234 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.ws.RealWebSocket$connect$1.onResponse(RealWebSocket.kt:195)
03-22 10:39:46.928  6589  7234 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519)
03-22 10:39:46.928  6589  7234 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
03-22 10:39:46.928  6589  7234 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
03-22 10:39:46.928  6589  7234 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.lang.Thread.run(Thread.java:920)
03-22 10:39:46.938  6589  7803 I org.jellyfin.sdk.api.sockets.helper.ReconnectHelper: Reconnect scheduled in 600ms (error=true)
03-22 10:39:47.571  6589  7803 D org.jellyfin.sdk.api.sockets.SocketInstance: Reconnect requested
03-22 10:39:47.571  6589  7803 I org.jellyfin.sdk.api.sockets.SocketInstance: Reconnecting
03-22 10:39:47.590  6589  7803 D org.jellyfin.sdk.api.sockets.helper.ReconnectHelper: Notified about reconnect, attempts=1
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: WebSocket has failed
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: java.net.SocketTimeoutException: failed to connect to /10.0.1.100 (port 8096) from /10.0.1.199 (port 43362) after 6000ms
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at libcore.io.IoBridge.connectErrno(IoBridge.java:236)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at libcore.io.IoBridge.connect(IoBridge.java:180)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.Socket.connect(Socket.java:621)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
03-22 10:39:53.672  6589  8054 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.lang.Thread.run(Thread.java:920)
03-22 10:39:53.674  6589  7806 I org.jellyfin.sdk.api.sockets.helper.ReconnectHelper: Reconnect scheduled in 6s (error=true)
03-22 10:39:59.713  6589  7803 D org.jellyfin.sdk.api.sockets.SocketInstance: Reconnect requested
03-22 10:39:59.713  6589  7803 I org.jellyfin.sdk.api.sockets.SocketInstance: Reconnecting
03-22 10:39:59.714  6589  7803 D org.jellyfin.sdk.api.sockets.helper.ReconnectHelper: Notified about reconnect, attempts=2
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: WebSocket has failed
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: java.net.SocketTimeoutException: failed to connect to /10.0.1.100 (port 8096) from /10.0.1.199 (port 43364) after 6000ms
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at libcore.io.IoBridge.connectErrno(IoBridge.java:236)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at libcore.io.IoBridge.connect(IoBridge.java:180)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.Socket.connect(Socket.java:621)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
03-22 10:40:05.757  6589  8055 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.lang.Thread.run(Thread.java:920)
03-22 10:40:05.759  6589  7803 I org.jellyfin.sdk.api.sockets.helper.ReconnectHelper: Reconnect scheduled in 15s (error=true)
03-22 10:40:20.799  6589  7806 D org.jellyfin.sdk.api.sockets.SocketInstance: Reconnect requested
03-22 10:40:20.800  6589  7806 I org.jellyfin.sdk.api.sockets.SocketInstance: Reconnecting
03-22 10:40:20.800  6589  7806 D org.jellyfin.sdk.api.sockets.helper.ReconnectHelper: Notified about reconnect, attempts=3
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: WebSocket has failed
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: java.net.SocketTimeoutException: failed to connect to /10.0.1.100 (port 8096) from /10.0.1.199 (port 43366) after 6000ms
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at libcore.io.IoBridge.connectErrno(IoBridge.java:236)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at libcore.io.IoBridge.connect(IoBridge.java:180)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.Socket.connect(Socket.java:621)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
03-22 10:40:26.871  6589  8058 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.lang.Thread.run(Thread.java:920)
03-22 10:40:26.875  6589  7806 I org.jellyfin.sdk.api.sockets.helper.ReconnectHelper: Reconnect scheduled in 30s (error=true)
03-22 10:40:56.911  6589  7806 D org.jellyfin.sdk.api.sockets.SocketInstance: Reconnect requested
03-22 10:40:56.912  6589  7806 I org.jellyfin.sdk.api.sockets.SocketInstance: Reconnecting
03-22 10:40:56.913  6589  7806 D org.jellyfin.sdk.api.sockets.helper.ReconnectHelper: Notified about reconnect, attempts=4
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: WebSocket has failed
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: java.net.SocketTimeoutException: failed to connect to /10.0.1.100 (port 8096) from /10.0.1.199 (port 43368) after 6000ms
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at libcore.io.IoBridge.connectErrno(IoBridge.java:236)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at libcore.io.IoBridge.connect(IoBridge.java:180)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.Socket.connect(Socket.java:621)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
03-22 10:41:02.976  6589  8060 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.lang.Thread.run(Thread.java:920)
03-22 10:41:02.980  6589  7806 I org.jellyfin.sdk.api.sockets.helper.ReconnectHelper: Reconnect scheduled in 45s (error=true)
03-22 10:41:47.995  6589  7803 D org.jellyfin.sdk.api.sockets.SocketInstance: Reconnect requested
03-22 10:41:47.996  6589  7803 I org.jellyfin.sdk.api.sockets.SocketInstance: Reconnecting
03-22 10:41:47.997  6589  7803 D org.jellyfin.sdk.api.sockets.helper.ReconnectHelper: Notified about reconnect, attempts=5
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: WebSocket has failed
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: java.net.SocketTimeoutException: failed to connect to /10.0.1.100 (port 8096) from /10.0.1.199 (port 43370) after 6000ms
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at libcore.io.IoBridge.connectErrno(IoBridge.java:236)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at libcore.io.IoBridge.connect(IoBridge.java:180)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.Socket.connect(Socket.java:621)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
03-22 10:41:54.060  6589  8066 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.lang.Thread.run(Thread.java:920)
03-22 10:41:54.063  6589  7806 I org.jellyfin.sdk.api.sockets.helper.ReconnectHelper: Reconnect scheduled in 1m (error=true)

---- repeats ----

03-22 10:56:40.144  6589  7806 D org.jellyfin.sdk.api.sockets.helper.ReconnectHelper: Notified about reconnect, attempts=16
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: WebSocket has failed
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession: java.net.SocketTimeoutException: failed to connect to /10.0.1.100 (port 8096) from /10.0.1.199 (port 43398) after 6000ms
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at libcore.io.IoBridge.connectErrno(IoBridge.java:236)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at libcore.io.IoBridge.connect(IoBridge.java:180)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.net.Socket.connect(Socket.java:621)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
03-22 10:56:46.184  6589  8173 W org.jellyfin.sdk.api.sockets.OkHttpWebsocketSession:   at java.lang.Thread.run(Thread.java:920)
03-22 10:56:46.188  6589  7803 D org.jellyfin.sdk.api.sockets.helper.ReconnectHelper: Reconnect schedule failed: exceeded maximum retry attempts of 16

Related server log:


[2024-03-22 10:36:40.933 -04:00] [INF] [67] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: "[10.0.1.0/24]"
[2024-03-22 10:38:15.339 -04:00] [INF] [67] Jellyfin.Networking.Manager.NetworkManager: Defined LAN addresses : "[10.0.1.0/24]"
[2024-03-22 10:38:15.339 -04:00] [INF] [67] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions : "[]"
[2024-03-22 10:38:15.339 -04:00] [INF] [67] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: "[10.0.1.0/24]"
[2024-03-22 10:39:46.922 -04:00] [WRN] [71] Emby.Server.Implementations.HttpServer.WebSocketConnection: WS "10.0.1.199" error receiving data: "The remote party closed the WebSocket connection without completing the close handshake."
[2024-03-22 10:39:46.927 -04:00] [INF] [71] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "10.0.1.199" closed
[2024-03-22 10:40:14.713 -04:00] [INF] [96] Jellyfin.Networking.Manager.NetworkManager: Defined LAN addresses : "[10.0.1.0/24]"
[2024-03-22 10:40:14.713 -04:00] [INF] [96] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions : "[]"
[2024-03-22 10:40:14.713 -04:00] [INF] [96] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: "[10.0.1.0/24]"

Application version

0.16.6

Where did you install the app from?

None

Device information

Google chromecast with android tv

Android version

Android TV OS Version 12

Jellyfin server version

10.8.13

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingstale

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions