Jellyfin - Continuity issues with lengthy tracks (PROTOCOL_ERROR)

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:

     

Logs are to be uploaded and not post a small extract here … I can’t do anything from this.

You are probably using an http/2 proxy that have too low timeouts and close the connection.

You can fix the proxy or enable the option to disable http/2 in settings to try to workaround.

You’re correct in thinking I’m using http/2, but I don’t have any timeouts defined anywhere so whatever timeout you’re referring to likely is defaulting to 60 seconds (using Apache) and doesn’t appear there’s any indication in the Symfonium log that it actually began timing out before that.

And I apologize, I didn’t really want to share some of the sensitive information in the log, I can upload and share it to you if you don’t care about the system info reply from Jellyfin.

That’s because your proxy is badly configured and will close the connection abruptly. 60 seconds without reading when streaming transcoded music is frequent, increase the timeout, use a better proxy or disable http/2 on Symfonium side.

Symfonium can’t do anything about proxy closing connexions.

Are you sure…? Wouldn’t I be seeing connection timeout errors in the httpd logs? I’m not doing anything fancy with apache, just using it as a reverse proxy. And I’m not trying to disagree with you on anything, just trying to understand since I haven’t noticed any issues aside from the one I’m showing you with this proxy and I’ve been using it for years. Would like to find the actual issue and fix it at the proxy if that’s where it’s at rather than use your work around..

Jellyfin is stating the app reported the song was stopped at 0ms?


[2025-04-16 12:52:06.220 -04:00] [INF] StartPlaybackTimer : event_playing_id     = "d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:52:06.220 -04:00] [INF] StartPlaybackTimer : event_user_id        = "7d78e4ce2e3c4bf196dbc6af410170ff"
[2025-04-16 12:52:06.220 -04:00] [INF] StartPlaybackTimer : event_user_id_int    = 2
[2025-04-16 12:52:06.220 -04:00] [INF] StartPlaybackTimer : session_playing_id   = "d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:52:06.220 -04:00] [INF] StartPlaybackTimer : session_user_id      = "7d78e4ce2e3c4bf196dbc6af410170ff"
[2025-04-16 12:52:06.220 -04:00] [INF] StartPlaybackTimer : play_method          = "Transcode (v: a:opus)"
[2025-04-16 12:52:06.220 -04:00] [INF] StartPlaybackTimer : e.ClientName         = "Android"
[2025-04-16 12:52:06.220 -04:00] [INF] StartPlaybackTimer : e.DeviceName         = "samsung SM-N975F"
[2025-04-16 12:52:06.220 -04:00] [INF] StartPlaybackTimer : ItemName             = "Tool - Rosetta Stoned (10,000 Days)"
[2025-04-16 12:52:06.220 -04:00] [INF] StartPlaybackTimer : ItemId               = "d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:52:06.220 -04:00] [INF] StartPlaybackTimer : ItemType             = "Audio"
[2025-04-16 12:52:06.220 -04:00] [INF] StartPlaybackTimer : All matches, playback registered
[2025-04-16 12:52:06.221 -04:00] [INF] Playback tracker found, adding playback info : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:52:06.221 -04:00] [INF] Saving playback tracking activity in DB
[2025-04-16 12:52:06.229 -04:00] [INF] StartPlaybackTimer : Exited
[2025-04-16 12:52:06.540 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:52:26.675 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:52:46.675 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:53:06.683 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:53:26.714 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:53:46.718 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:54:06.721 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:54:26.761 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:54:46.762 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:55:06.788 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:55:27.758 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:55:47.852 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:56:07.852 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:56:27.875 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:56:47.878 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:57:07.878 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:57:27.890 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:57:47.913 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:58:08.913 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:58:29.851 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:58:49.883 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:59:10.884 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:59:30.976 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 12:59:51.974 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 13:00:11.974 -04:00] [INF] Processing playback tracker : "45A52ADE28B4999B3138960EC1E7DEAB-7d78e4ce2e3c4bf196dbc6af410170ff-d4cbfdbb314c881c139f6b5b6edda1ef"
[2025-04-16 13:00:29.964 -04:00] [INF] Deleting partial stream file(s) "/var/lib/jellyfin/transcodes/eda975b11982e30763e71ca7a5bf7e43.ogg"
[2025-04-16 13:00:30.034 -04:00] [INF] Playback stopped reported by app "Android" "12" playing "Rosetta Stoned". Stopped at "0" ms

If you want me to just use the http/1.1 work around I’ll do that, but I don’t think this is a proxy issue.. maybe an issue upstream from that but not the proxy..

I think I understand what you’re saying… so are you saying Jellyfin is serving a portion of the file, before Symfonium is finished reading (eg. listening) to that portion of the song, the connection is closed by the http server?

The underlying http/2 connection is closed abruptly by the proxy. Only the proxy logs will tell why it does that.

Symfonium reads music by chunk to optimize battery usage via less radio usage on the phone.

Some proxy have issues and either pre cache too much from the source and then timeout with the host or timeout with Symfonium.

But since it’s low level connection closing from the proxy there’s no possible recovery.

The report at 0 is normal, Symfonium controls the Play counts via it’s settings.

Aside from a CDN tunnel, I’m hosting every leg of the connection here, (including the proxy). The proxy does not indicate that there was a timeout, I should be able to see this in the logs, all I’m seeing in the http/proxy logs are the chunks that Symfonium is requesting. If you look at the request logs below, Symfonium is performing it’s final POST at 13:00:16 and then immediately performing a GET to restart the song. I don’t understand why Symfonium is suggesting that it was unable to read the source at 12:58:49 when there was clearly a chunk that was served at 12:58:46 and again another at 12:59:16.

Also, in response to the above, I’m not talking about the counter. I’m talking about what I guess would be the position ticker, since in the last line in the Jellyfin log above is suggesting the app stopped the listening track at 0 ms and the webserver logs (below) show that it performed it’s last two POSTs with PositionTicks=0, specifically the requests at 13:00:17.

172.21.0.1 - - [16/Apr/2025:12:51:16 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:51:37 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:51:44 -0400] "GET /Users/7d78e4ce2e3c4bf196dbc6af410170ff/Items/d4cbfdbb314c881c139f6b5b6edda1ef HTTP/1.1" 200 4345 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:51:44 -0400] "POST /Items/d4cbfdbb314c881c139f6b5b6edda1ef/PlaybackInfo?UserId=7d78e4ce2e3c4bf196dbc6af410170ff&AutoOpenLiveStream=true&StartTimeTicks=0&MaxStreamingBitrate=320000 HTTP/1.1" 200 2269 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:51:44 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:51:45 -0400] "GET /audio/d4cbfdbb314c881c139f6b5b6edda1ef/Lyrics HTTP/1.1" 200 7081 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:51:45 -0400] "GET /audio/d4cbfdbb-314c-881c-139f-6b5b6edda1ef/stream.ogg?DeviceId=45A52ADE28B4999B3138960EC1E7DEAB&MediaSourceId=d4cbfdbb314c881c139f6b5b6edda1ef&AudioCodec=opus&AudioBitrate=320000&AudioSampleRate=48000&PlaySessionId=c674766d1466457c88a5dd6357f14a56&api_key=bf8e711de37340fdbdc50efa136f4513&TranscodingMaxAudioChannels=6&RequireAvc=false&EnableAudioVbrEncoding=true&Tag=a4938d4b67d2ba8b82ea2d0273da16f0&TranscodeReasons=ContainerBitrateExceedsLimit HTTP/1.1" 200 21972406 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:51:45 -0400] "POST /Sessions/Playing/Ping?PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:51:46 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=0&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:51:46 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=0&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:51:47 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:51:57 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:52:07 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:52:16 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=300000000&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:52:17 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:52:27 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:52:37 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:52:46 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=600000000&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:52:47 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:52:57 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:53:08 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:53:16 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=900000000&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:53:18 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:53:28 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:53:38 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:53:46 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=1200000000&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:53:48 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:53:58 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:54:08 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:54:16 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=1500000000&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:54:18 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:54:28 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:54:38 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:54:46 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=1800000000&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:54:49 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:54:59 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:55:09 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:55:16 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=2100000000&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:55:19 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:55:29 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:55:39 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:55:46 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=2400000000&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:55:49 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:55:59 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:56:10 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:56:16 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=2700000000&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:56:20 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:56:30 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:56:40 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:56:46 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=3000000000&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:56:50 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:57:00 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:57:10 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:57:16 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=3300000000&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:57:21 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:57:31 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:57:41 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:57:46 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=3600000000&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:57:51 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:58:01 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:58:11 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:58:16 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=3900000000&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:58:21 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:58:32 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:58:42 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:58:46 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=4200000000&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:58:52 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:59:03 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:59:13 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:59:16 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=4500000000&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:59:23 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:59:33 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:59:44 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:59:46 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=4800000000&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:12:59:54 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:13:00:05 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:13:00:15 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:13:00:16 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=5100000000&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:13:00:17 -0400] "GET /audio/d4cbfdbb-314c-881c-139f-6b5b6edda1ef/stream.ogg?DeviceId=45A52ADE28B4999B3138960EC1E7DEAB&MediaSourceId=d4cbfdbb314c881c139f6b5b6edda1ef&AudioCodec=opus&AudioBitrate=320000&AudioSampleRate=48000&PlaySessionId=c674766d1466457c88a5dd6357f14a56&api_key=bf8e711de37340fdbdc50efa136f4513&TranscodingMaxAudioChannels=6&RequireAvc=false&EnableAudioVbrEncoding=true&Tag=a4938d4b67d2ba8b82ea2d0273da16f0&TranscodeReasons=ContainerBitrateExceedsLimit HTTP/1.1" 200 21972406 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:13:00:17 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=0&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:13:00:17 -0400] "POST /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef/Progress?PositionTicks=0&PlayMethod=Transcode&IsPaused=False&PlaySessionId=c674766d1466457c88a5dd6357f14a56 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:13:00:25 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:13:00:29 -0400] "POST /Sessions/Playing/Stopped HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:13:00:30 -0400] "DELETE /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef?PlaySessionId=c674766d1466457c88a5dd6357f14a56&PositionTicks=0 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:13:00:30 -0400] "DELETE /Users/7d78e4ce2e3c4bf196dbc6af410170ff/PlayingItems/d4cbfdbb314c881c139f6b5b6edda1ef?PositionTicks=110000000 HTTP/1.1" 204 - "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:13:08:12 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:13:08:38 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:13:08:42 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"
172.21.0.1 - - [16/Apr/2025:14:17:15 -0400] "GET /System/Info HTTP/1.1" 200 7154 "-" "Symfonium/12.2.0 (Linux;Android 12)"

I also want to point out, that I can’t seem to reproduce this issue using a Wi-Fi connection, I can only get it to behave the way it is above when I am using the handsets data connection, the song will play all the way through on Wi-Fi. And if wondering, no it’s not hitting something locally, it’s hitting the Internet. Apologies, I should have probably mentioned that in the initial report.

You are mixing so many things…

172.21.0.1 - - [16/Apr/2025:12:51:45 -0400] "GET /audio/d4cbfdbb-314c-881c-139f-6b5b6edda1ef/stream.ogg?DeviceId=45A52ADE28B4999B3138960EC1E7DEAB&MediaSourceId=d4cbfdbb314c881c139f6b5b6edda1ef&AudioCodec=opus&AudioBitrate=320000&AudioSampleRate=48000&PlaySessionId=c674766d1466457c88a5dd6357f14a56&api_key=bf8e711de37340fdbdc50efa136f4513&TranscodingMaxAudioChannels=6&RequireAvc=false&EnableAudioVbrEncoding=true&Tag=a4938d4b67d2ba8b82ea2d0273da16f0&TranscodeReasons=ContainerBitrateExceedsLimit HTTP/1.1" 200 21972406 "-" "Symfonium/12.2.0 (Linux;Android 12)"

This is the request that reads the audio data by chunk and will be closed by the proxy.
The fact that there’s other requests have 0 impact on that one being cut by the proxy, due to how http/2 works.

And again the position sending is irrelevant here they are sent after the issue arise and the playback have restarted.

Alright, so I’ll go ahead and give the 1.1 method a try. I used it today and pretty sure I already reproduced the same issue I reported above, but I’ll give you the benefit of the doubt and try it for a week or so and report back. Appreciate the “support” so far, from a loyal supporter of your software.