But if the Rivo Plus had a RTC, it could be ![]()
Gemini got a bit defensive and curt when I confronted it. It now blames your software not playing nice with Tidal. This morning again. Different playlist. I Didn’t shuffle. It stopped after exactly 19 songs. Same as yesterday. It says it is due to the Streaming Proxy/Authentication Token Issue.
We reported your problems internally, and we are investigating as we speak.
mr.Dario,
It seems indeed that 19 is a magical number. I can confirm with a random playlist, Tidal connect stops at track 19 (Rivo + iPhone 15).
http://logs.volumio.org/rivo/ZmjevD6.html
When will the stable version V3.886 be available on Rivo+?
I’m just chiming in to mention it seems this is an issue with a timed expiration of authentication tokens for Tidal (and connection handshake with tisoc), because:
I set out to see if I could replicate the disconnects on track 19 earlier today. I chose the Tidal Prog Rock Classics playlist (here: Prog Rock Classics), where in hindsight I realized reaching that number track on the playlist would take about 4-5 hrs as each track averages 20+ minutes.
To my surprise, disconnects started happening first on track 4 (after 1hr playback), on Rush’s 2112, and then again at the end of Pink Floyd’s Echoes, track 8, also after 1hr playback.
Looking at my logs I see the following when listening to 2112:
Dec 12 15:15:11 nomad vtcs[11783]: [2025-12-12 15:15:11.051] [tisoc] [warning] [http_stream_fetcher.cpp:122] Http request failed with status code 0. Will not retry.
Dec 12 15:15:11 nomad vtcs[11783]: [2025-12-12 15:15:11.051] [tisoc] [error] [audio_worker.cpp:164] Max connection attempts reached, url: https://lgf.audio.tidal.com/mediatracks/CAEaKwgDEidhNzdhZTI5ZmU4NGQzMmU4MmQ5OTM4MWZlYzVmOGMzMF82MS5tcDQ/0.flac?token=(TOKEN NUMBER SUPRESSED BY ME)==, code: 0, message: Http request failed with status code 0. Will not retry.
As I attempted to play it again, the system posted this:
Dec 12 15:15:41 nomad vtcs[11783]: [2025-12-12 15:15:41.804] [tisoc] [warning] [PlaybackEngineTidal.cpp:245] url fetch error: 0, 401, {"status":401,"subStatus":11003,"userMessage":"The token has expired. (Expired on time)"}
Dec 12 15:15:41 nomad vtcs[11783]: [close:85] Entering
Dec 12 15:15:41 nomad vtcs[11783]: [close:100] Exiting
An hour or so later, on Echoes:
Dec 12 16:53:01 nomad volumio[1295]: error: error
Dec 12 16:53:02 nomad vtcs[11783]: [2025-12-12 16:53:02.517] [tisoc] [warning] [http_stream_fetcher.cpp:122] Http request failed with status code 0. Will not retry.
Dec 12 16:53:02 nomad vtcs[11783]: [2025-12-12 16:53:02.517] [tisoc] [error] [audio_worker.cpp:164] Max connection attempts reached, url: https://lgf.audio.tidal.com/mediatracks/CAEaKAgDEiQxZTkzOTgyZjQ1ODE2NjE5N2FhNzg5NzBlNjE0ZjA2Ni5tcDQ/0.flac?token=(TOKEN NUMBER SUPPRESSED BY ME)==, code: 0, message: Http request failed with status code 0. Will not retry.
Dec 12 16:53:02 nomad vtcs[11783]: [close:85] Entering
Dec 12 16:53:02 nomad volumio[1295]: info: Unknown command: notifyPlaybackError
Dec 12 16:53:02 nomad vtcs[11783]: [feedThread:276] Exiting
I see this same error on @Wheaten 's log:
Dec 12 10:16:52 rivo vtcs[4383]: [2025-12-12 10:16:52.326] [tisoc] [warning] [PlaybackEngineTidal.cpp:245] url fetch error: 0, 400, {"status":400,"error":"invalid_grant","sub_status":11003,"error_description":"The token has expired. (Expired on time)"}
I’ll continue and post more info on this when the issue is triggered again. Hope this helps!!
ow good find!!!
I’ve just started track 9. I may post back in an hour or so, after track 11 or 12 ![]()
Yeah, I got stuck on a post about pagination. Tidal delivers tracks in batches of 20, so in all three logs the TC process stops consistently at track 19. If this turns out to be an authentication‑token expiry issue, the fix should be straightforward. I’ve already notified Volumio and they’re investigating it.
By any chance, did you skip any tracks on the playlist, or did you let it reach no. 19 by itself? I ask because given an average song time between 3-5 minutes, it may well be that you reached that number after an hour or so of playback - which fits with the expiry description and logs.
Just let it run in the background, no skipping or interfering.
Update:
I started on track 9 (This Strange Engine by Marillion) on that same playlist.
Upon finishing track 15 (Moon in June, Soft Machine), playback stopped. The Tidal app interface looks as if paused. So does the Volumio UI. This marks approximately 1hr, 35m, 45s of playback.
As this happens, the same error appears again:
Dec 12 18:21:08 nomad vtcs[11783]: [close:100] Exiting
Dec 12 18:21:09 nomad vtcs[11783]: [2025-12-12 18:21:09.241] [tisoc] [warning] [PlaybackEngineTidal.cpp:245] url fetch error: 0, 400, {"status":400,"error":"invalid_grant","sub_status":11003,"error_description":"The token has expired. (Expired on time)"}
Dec 12 18:21:09 nomad vtcs[11783]: [close:85] Entering
Dec 12 18:21:09 nomad vtcs[11783]: [close:100] Exiting
… (while still in silence/no playback):
Dec 12 18:32:54 nomad vtcs[11783]: [2025-12-12 18:32:54.793] [tisoc] [error] [HttpClient.cpp:469] curl_easy_perform failed. reason:URL using bad/illegal format or missing URL further detail:
Dec 12 18:32:54 nomad vtcs[11783]: [2025-12-12 18:32:54.793] [tisoc] [error] [QueueWindowLoader.cpp:272] status code:99
After creating this post I hit play again, on a different track.
This time, however, I could resume playback a few minutes after the token issue without disconnecting & reconnecting Tidal Connect. I only needed to click on a new track.
Hope this helps.
PD: I’m running Volumio 4. I haven’t tested this on V3 since I’ve upgraded systems.
I think it does and thanks a lot for taking the time to dig into this.
Really appreciate the effort.
This kind of contributions makes this forum such an amazing place.
185.80.247.36 local addr 192.168.2.19 →
94.177.51.183 local addr 192.168.2.19 →
213.136.0.252 local addr 192.168.2.19 →
83.98.201.134 local addr 192.168.2.19 →
172.233.59.163 local addr 192.168.2.19 →
172.233.38.176 local addr 192.168.2.19 →
This is from my live log immediately after the playlist stops. It is checking time servers is my guess.
Then I tapped the next song in the playlist, it played and at the end , no next song. This happened
close:85] Entering
info: CoreCommandRouter::servicePushState
info: CoreStateMachine::pushState
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
info: CoreCommandRouter::volumioPushState
info: CoreCommandRouter::servicePushState
info: CoreStateMachine::pushState
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
info: CoreCommandRouter::volumioPushState
[feedThread:276] Exiting
[close:100] Exiting
info: MCU Signalled Playback Inactive
Then I picked a song a bit further down the playlist. Time servers again play the song regularly and stops.
213.154.236.182 local addr 192.168.2.19 →
81.172.248.188 local addr 192.168.2.19 →
193.111.32.123 local addr 192.168.2.19 →
5.200.6.34 local addr 192.168.2.19 →
Created a log after that: http://logs.volumio.org/rivoplus/RotCgUN.html
So likely the time limit of the token is causing it to stop playback. Because of the length of your songs it never reaches the prefetched amount of songs.
Hi @Marc050 !
Very interesting. I’ve just looked through your log and spot the following in your Rivo:
a) The Token Expiry error in multiple instances, for example at 10:11:22 and 10:11:32 here:
Dec 13 10:11:22 magister vtcs[3713]: [2025-12-13 10:11:22.787] [tisoc] [warning] [PlaybackEngineTidal.cpp:245] url fetch error: 0, 401, {"status":401,"subStatus":11003,"userMessage":"The token has expired. (Expired on time)"}
Dec 13 10:11:23 magister ntpd[24261]: 195.35.113.80 local addr 192.168.2.19 ->
Dec 13 10:11:26 magister ntpd[24261]: 172.233.59.163 local addr 192.168.2.19 ->
Dec 13 10:11:32 magister vtcs[3713]: [close:85] Entering
Dec 13 10:11:32 magister volumio[3118]: info: CoreCommandRouter::servicePushState
Dec 13 10:11:32 magister volumio[3118]: info: CoreStateMachine::pushState
Dec 13 10:11:32 magister volumio[3118]: info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
Dec 13 10:11:32 magister volumio[3118]: info: CoreCommandRouter::volumioPushState
Dec 13 10:11:32 magister volumio[3118]: info: CoreCommandRouter::servicePushState
Dec 13 10:11:32 magister volumio[3118]: info: CoreStateMachine::pushState
Dec 13 10:11:32 magister volumio[3118]: info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
Dec 13 10:11:32 magister volumio[3118]: info: CoreCommandRouter::volumioPushState
Dec 13 10:11:32 magister vtcs[3713]: [feedThread:276] Exiting
Dec 13 10:11:32 magister vtcs[3713]: [close:100] Exiting
Dec 13 10:11:32 magister volumio[3118]: info: Pushing metadata
Dec 13 10:11:32 magister volumio[3118]: info: CoreCommandRouter::servicePushState
Dec 13 10:11:32 magister volumio[3118]: info: CoreStateMachine::pushState
Dec 13 10:11:32 magister volumio[3118]: info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
Dec 13 10:11:32 magister volumio[3118]: info: CoreCommandRouter::volumioPushState
Dec 13 10:11:32 magister volumio[3118]: info: CoreCommandRouter::servicePushState
Dec 13 10:11:32 magister volumio[3118]: info: CoreStateMachine::pushState
Dec 13 10:11:32 magister volumio[3118]: info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
Dec 13 10:11:32 magister volumio[3118]: info: CoreCommandRouter::volumioPushState
Dec 13 10:11:32 magister volumio[3118]: info: CoreCommandRouter::servicePushState
Dec 13 10:11:32 magister volumio[3118]: info: CoreStateMachine::pushState
Dec 13 10:11:32 magister volumio[3118]: info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
Dec 13 10:11:32 magister volumio[3118]: info: CoreCommandRouter::volumioPushState
Dec 13 10:11:32 magister volumio[3118]: info: Signalling Playback active due to playback status change
Dec 13 10:11:32 magister volumio[3118]: info: MCU Signalled Playback Inactive
Dec 13 10:11:32 magister volumio[3118]: info: MCU Signalled Playback Active
Dec 13 10:11:32 magister vtcs[3713]: [2025-12-13 10:11:32.815] [tisoc] [warning] [PlaybackEngineTidal.cpp:245] url fetch error: 0, 400, {"status":400,"error":"invalid_grant","sub_status":11003,"error_description":"The token has expired. (Expired on time)"}
Dec 13 10:11:32 magister vtcs[3713]: [close:85] Entering
Dec 13 10:11:32 magister vtcs[3713]: [close:100] Exiting
Whenever these happen, tisoc then issues the following response (also on my logs and @Wheaten 's:
Dec 13 10:18:32 magister vtcs[3713]: [2025-12-13 10:18:32.676] [tisoc] [error] [QueueWindowLoader.cpp:272] status code:401
Dec 13 10:18:32 magister vtcs[3713]: [2025-12-13 10:18:32.724] [tisoc] [error] [HttpClient.cpp:469] curl_easy_perform failed. reason:URL using bad/illegal format or missing URL further detail:
Dec 13 10:18:32 magister vtcs[3713]: [2025-12-13 10:18:32.724] [tisoc] [error] [QueueWindowLoader.cpp:272] status code:99
In this case, token expiry issue is pretty straight-forward as a cause for recurring Tidal Connect interruptions after a set time.
b) Multiple time errors on fd #20 reported from the ntp service, such as:
Dec 13 09:49:04 magister ntpd[22353]: kernel reports TIME_ERROR: 0x2041: Clock Unsynchronized
Dec 13 09:49:04 magister ntpd[22353]: kernel reports TIME_ERROR: 0x2041: Clock Unsynchronized
...
Dec 13 10:13:04 magister ntpd[26190]: Listening on routing socket on fd #20 for interface updates
Dec 13 10:13:04 magister ntpd[26190]: kernel reports TIME_ERROR: 0x2041: Clock Unsynchronized
Dec 13 10:13:04 magister ntpd[26190]: kernel reports TIME_ERROR: 0x2041: Clock Unsynchronized
...
Dec 13 10:37:05 magister ntpd[30018]: Listening on routing socket on fd #20 for interface updates
Dec 13 10:37:05 magister ntpd[30018]: kernel reports TIME_ERROR: 0x2041: Clock Unsynchronized
Dec 13 10:37:05 magister ntpd[30018]: kernel reports TIME_ERROR: 0x2041: Clock Unsynchronized
I hope the Volumio team can better explain the impact this may have on playback. @Darmur @volumio
Again, hope this helps!
[v4.073 Pi4b 2GB 32GB SD USB DAC]
FYI: The Token Expiry error - Been experiencing some intermittent playback pauses. Wasn’t sure if it was Tidal or my ISP or something else. Similar situation as others here maybe. Just saw this,
Dec 13 12:54:39 node-noire vtcs[1762]: [close:85] Entering
Dec 13 12:54:39 node-noire vtcs[1762]: [feedThread:276] Exiting
Dec 13 12:54:39 node-noire vtcs[1762]: [close:100] Exiting
Dec 13 12:54:54 node-noire vtcs[1762]: [2025-12-13 12:54:54.104] [tisoc] [error] [HttpClient.cpp:469] curl_easy_perform failed. reason:URL using bad/illegal format or missing URL further detail:
Dec 13 12:54:54 node-noire vtcs[1762]: [2025-12-13 12:54:54.104] [tisoc] [error] [QueueWindowLoader.cpp:288] delete Item error, status code:99
Dec 13 12:54:54 node-noire vtcs[1762]: [2025-12-13 12:54:54.104] [tisoc] [warning] [QueueWindowLoader.cpp:452] Active Track delete Error. queueId:b4c1bbcf-329a-43a3-a012-6915189d893f itemId:65c94e8a-2613-45de-a91d-8cb0f3e1d68f retry:1
Dec 13 12:54:54 node-noire vtcs[1762]: [2025-12-13 12:54:54.104] [tisoc] [error] [HttpClient.cpp:469] curl_easy_perform failed. reason:URL using bad/illegal format or missing URL further detail:
Dec 13 12:54:54 node-noire vtcs[1762]: [2025-12-13 12:54:54.104] [tisoc] [error] [QueueWindowLoader.cpp:288] delete Item error, status code:99
Dec 13 12:54:54 node-noire vtcs[1762]: [2025-12-13 12:54:54.104] [tisoc] [warning] [QueueWindowLoader.cpp:452] Active Track delete Error. queueId:b4c1bbcf-329a-43a3-a012-6915189d893f itemId:65c94e8a-2613-45de-a91d-8cb0f3e1d68f retry:2
Dec 13 12:54:54 node-noire vtcs[1762]: [2025-12-13 12:54:54.105] [tisoc] [error] [HttpClient.cpp:469] curl_easy_perform failed. reason:URL using bad/illegal format or missing URL further detail:
Dec 13 12:54:54 node-noire vtcs[1762]: [2025-12-13 12:54:54.105] [tisoc] [error] [QueueWindowLoader.cpp:288] delete Item error, status code:99
Dec 13 12:54:54 node-noire vtcs[1762]: [2025-12-13 12:54:54.105] [tisoc] [warning] [QueueWindowLoader.cpp:452] Active Track delete Error. queueId:b4c1bbcf-329a-43a3-a012-6915189d893f itemId:65c94e8a-2613-45de-a91d-8cb0f3e1d68f retry:3
Dec 13 12:54:54 node-noire vtcs[1762]: [2025-12-13 12:54:54.105] [tisoc] [error] [HttpClient.cpp:469] curl_easy_perform failed. reason:URL using bad/illegal format or missing URL further detail:
Dec 13 12:54:54 node-noire vtcs[1762]: [2025-12-13 12:54:54.105] [tisoc] [error] [QueueWindowLoader.cpp:288] delete Item error, status code:99
Dec 13 12:54:54 node-noire vtcs[1762]: [2025-12-13 12:54:54.316] [tisoc] [warning] [PlaybackEngineTidal.cpp:245] url fetch error: 0, 401, {"status":401,"subStatus":11003,"userMessage":"**The token has expired.** (Expired on time)"}
Dec 13 12:54:54 node-noire vtcs[1762]: [close:85] Entering
Dec 13 12:54:54 node-noire vtcs[1762]: [close:100] Exiting
D
TIDAL confirmed that the 401 problems is a bug on their side and they have implemented a workaround. The issue should be resolved without any software update.
Disconnections have not happened so far but the autoplay is still stopping after a while when using the Tidal Connect.
I spoke too soon. Tidal Connect disconnected again. Here is my log:- http://logs.volumio.org/rivoplus/Krjitvy.html