Issue description:
When streaming content from Jellyfin, I’m showing a PROTOCOL_ERROR in the debug logs of Symfonium. Jellyfin is set to transcode the content. Once this occurs, the Symfonium restarts the track from the beginning. Seems very similar to this issue: Playback stops when playing long tracks/DJ Mixes - #2 by Tolriq
Let me know if you need any more additional logs on this.
2025-04-16 12:58:49.204 Verbose/ExoPlayer/1: loading [eventTime=969.04, mediaPos=421.26, window=0, period=0, true]
2025-04-16 12:58:49.233 Error/MusicPlayer: DataSource: Error reading source (0/10/false), retrying [l20.d0: stream was reset: PROTOCOL_ERROR]
2025-04-16 12:58:49.734 Error/MusicPlayer: DataSource: Error reading source (1/10/false), retrying [l20.d0: stream was reset: PROTOCOL_ERROR]
2025-04-16 12:58:50.735 Error/MusicPlayer: DataSource: Error reading source (2/10/false), retrying [l20.d0: stream was reset: PROTOCOL_ERROR]
2025-04-16 12:58:52.237 Error/MusicPlayer: DataSource: Error reading source (3/10/false), retrying [l20.d0: stream was reset: PROTOCOL_ERROR]
2025-04-16 12:58:53.604 Verbose/JellyfinLogger: --> [249] GET https://example.com/System/Info
2025-04-16 12:58:53.606 Verbose/JellyfinLogger: --> [249] END GET
2025-04-16 12:58:54.155 Verbose/JellyfinLogger: <-- [249] 200 https://example.com/System/Info (550ms, unknown-length body)
2025-04-16 12:58:54.159 Verbose/JellyfinLogger: <-- [249] END HTTP (551ms, 7154-byte body)
2025-04-16 12:58:54.238 Error/MusicPlayer: DataSource: Error reading source (4/10/false), retrying [l20.d0: stream was reset: PROTOCOL_ERROR]
2025-04-16 12:58:56.739 Error/MusicPlayer: DataSource: Error reading source (5/10/false), retrying [l20.d0: stream was reset: PROTOCOL_ERROR]
2025-04-16 12:58:59.750 Error/MusicPlayer: DataSource: Error reading source (6/10/false), retrying [l20.d0: stream was reset: PROTOCOL_ERROR]
2025-04-16 12:59:03.252 Error/MusicPlayer: DataSource: Error reading source (7/10/false), retrying [l20.d0: stream was reset: PROTOCOL_ERROR]
2025-04-16 12:59:04.167 Verbose/JellyfinLogger: --> [196] GET https://example.com/System/Info
2025-04-16 12:59:04.172 Verbose/JellyfinLogger: --> [196] END GET
2025-04-16 12:59:04.523 Verbose/JellyfinLogger: <-- [196] 200 https://example.com/System/Info (355ms, unknown-length body)
2025-04-16 12:59:04.532 Verbose/JellyfinLogger: <-- [196] END HTTP (355ms, 7154-byte body)
2025-04-16 12:59:07.253 Error/MusicPlayer: DataSource: Error reading source (8/10/false), retrying [l20.d0: stream was reset: PROTOCOL_ERROR]
2025-04-16 12:59:11.754 Error/MusicPlayer: DataSource: Error reading source (9/10/false), retrying [l20.d0: stream was reset: PROTOCOL_ERROR]
2025-04-16 12:59:14.529 Verbose/JellyfinLogger: --> [804] GET https://example.com/System/Info
2025-04-16 12:59:14.530 Verbose/JellyfinLogger: --> [804] END GET
2025-04-16 12:59:14.789 Verbose/JellyfinLogger: <-- [804] 200 https://example.com/System/Info (258ms, unknown-length body)
2025-04-16 12:59:14.792 Verbose/JellyfinLogger: <-- [804] END HTTP (259ms, 7154-byte body)
2025-04-16 12:59:16.755 Verbose/ExternalPlaylistDataSource: Close: c1bf74d3-aa4a-4d7d-8507-c7c5ec1dd3ac
2025-04-16 12:59:16.758 Error/ExoPlayer/1: internalError [eventTime=996.59, mediaPos=448.80, window=0, period=0, loadError
r4.v: l20.d0: stream was reset: PROTOCOL_ERROR
at t4.b.y(Unknown Source:54)
at gh.g.y(Unknown Source:2)
at r4.m.y(Unknown Source:5)
at gh.b.y(Unknown Source:154)
at r4.c0.y(Unknown Source:2)
at l5.o.e(Unknown Source:10)
at l5.o.c(Unknown Source:30)
at l5.o.readFully(Unknown Source:1)
at g6.e.b(Unknown Source:96)
at g6.i.d(Unknown Source:99)
at g6.d.d(Unknown Source:55)
at t10.c.Q(Unknown Source:14)
at g5.i0.e(Unknown Source:193)
at j5.g.run(Unknown Source:34)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)
Caused by: l20.d0: stream was reset: PROTOCOL_ERROR
at l20.v.r0(Unknown Source:66)
at i20.g.r0(Unknown Source:8)
at kx.a.read(SourceFile:13)
at t4.b.y(Unknown Source:33)
... 16 more
]
2025-04-16 12:59:18.251 Verbose/QueryBuilder: Query: UPDATE on media_queues, count=1 | (media_queues._id=?) - '447' [2.58ms false]
2025-04-16 12:59:18.255 Verbose/JellyfinLogger: --> [118] POST https://example.com/Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=4500000000&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 (123-byte body)
2025-04-16 12:59:18.256 Verbose/JellyfinLogger: --> [118] {"PositionTicks":4500000000,"PlayMethod":"Transcode","IsPaused":"False","PlaySessionId":"c674766d1466457c88a5dd6357f14a56"}
While poking through the debug logs I also saw a SQL query that’s attempting to select records where the URL begins with https://4…? Doubt this is related to the above issue but figured I’d record it anyway.
2025-04-16 12:51:46.520 Verbose/QueryBuilder: Query: SELECT media_info_cache_entry._id, media_info_cache_entry.media_uri, media_info_cache_entry.media_format, media_info_cache_entry.last_modified FROM media_info_cache_entry WHERE (media_uri=?) ('https://4/audio/d4cbfdbb-314c-881c-139f-6b5b6edda1ef/stream.ogg?DeviceId=45A52ADE28B4999B3138960EC1E7DEAB&MediaSourceId=d4cbfdbb314c881c139f6b5b6edda1ef&AudioCodec=opus&AudioBitrate=320000&AudioSampleRate=48000&api_key=REDACTED&TranscodingMaxAudioChannels=6&RequireAvc=false&EnableAudioVbrEncoding=true&Tag=a4938d4b67d2ba8b82ea2d0273da16f0&TranscodeReasons=ContainerBitrateExceedsLimit') [1 in 0.76ms]
Logs:
Upload description: Included in description
Additional information:
Reproduction steps:
Media provider:
Jellyfin
Screenshots: