Roon UI slowdown with Qobuz integration enabled (ref#Q5IPA9)

What app are you having the slowness issue with?

· Roon

What kind of performance/speed issue are you experiencing?

· Other

Please try to reboot your Roon Server

· No, the issue is still the same even immediately after a reboot

Please try to reboot your networking gear (Router/Switches/etc.)

· No, the issue is still the same even after a reboot

Is there any change in behavior if you try to navigate to Roon Settings -> Library and set both Background and On-Demand Audio Analysis to Throttled or Off?

· No, the issue is still the same

Does the issue happen on multiple Roon Remotes (controllers) or just one?

· I only have one Roon remote to test with

Please try to restart your Roon Remote (controller) app

· No, the issue is still the same even after a restart

What is the operating system of your Roon Remote (controller)?

· Mac

Reinstall Windows/MacOS Roon Remote App

· No, I am still having the issue even after reinstalling

Router Domain Name System (DNS) change

· I was able to change my router's DNS servers but it did not help

What is the operating system of your Roon Server host machine?

· Linux Server (Ubuntu, Fedora, ArchLinux...)

Timestamp of issue occurrences

· Always / I have reinstalled Roon Server / Roon Remote / Changed ISP / DNS / always the initial load of Home screen is delayed when Qobuz integration is ON

Describe the issue

Hello,

I am experiencing significant slowdowns in the Roon user interface when Qobuz integration is enabled. My setup includes a local library of approximately 900 albums. When Qobuz is connected, the main screen in Roon takes a long time to load, especially with recommended albums and similar content.

If I temporarily disable Qobuz integration and use only my local library, the UI loads very quickly.

There is no slowdown when streaming from Qobuz or from my local library, nor when browsing artists, albums, or other sections within Qobuz. The issue only occurs during the initial loading of the Roon home screen, specifically in the sections that include Qobuz content and recommendations.

This issue is very frustrating and is clearly related to the Qobuz integration, as the problem disappears when Qobuz is disabled.

Is this a known issue? Is there anything I can do to improve the user experience?

Please let me know if you need me to upload logs or provide any additional information to help diagnose the problem.

Thank you for your assistance.

Describe your network setup

ISP -> Fiber -> Unifi Gateway -> Unifi Switch -> Roon Server // Everything cabled 2.5G // No packet loss/DNS/latency problems

Hey @Felipe_Williams,

Thanks for writing in and for sharing your report!

Are you referring to when you intnially start up Roon? Or, does this happen every time to navigate back to the home screen, even after navigating for awhile?

As a first step in troubleshooting, let’s see if clearing your Qobuz cache folder may help.

  • Stop Roon Server from running in the Web UI
  • Find and open your RoonServer database
  • Navigate to RoonServer/Cache
  • Move the contents of the /Cache folder elsewhere, like your desktop
  • Try restarting Roon Server via the WebUI and verify if the issue still occurs

We’ll be on standby for your reply and results! :raising_hands:

When I navigabe back to the home screen, it happens.

I did all your steps but the problem is still there:

[audiolinux@audiolinux2 ~]$ sudo systemctl stop roonserver

[audiolinux@audiolinux2 Cache]$ sudo mv /var/roon/RoonServer/Cache/* /home/audiolinux/cache_bkp
[sudo] password for root: 
[audiolinux@audiolinux2 Cache]$ ls
[audiolinux@audiolinux2 Cache]$

[audiolinux@audiolinux2 ~]$ sudo systemctl start roonserver

  1. Logs / every time I go back to home screen there is some seconds delay (sometimes a few, sometings >5s)… in the log it seems it gets waiting in this part?

tidal=max
operations with >1000ms duration

Im not sure I can paste the full logs here but I will copy just one line with some doubts:
it shows “returned after 10267 ms” => slow
it seems it’s the discovery api
it says c=qobuz-cl but after it says tidal=max ? I had Tidal months ago but not anymore

Thanks

07/03 16:04:23 Debug: [easyhttp] [219] GET to https://api.roonlabs.net/discover/1/profiles/[redacted-uuid]/albums/newv3?c=qobuz-cl&contentPreferences=preferTidal,avoidMqa&textSources=Rovi-albums:en,Wikipedia:en,Rovi-artists:en,Rovi-compositions:en&tidal=max returned after 10267 ms, status code: 200, request body size: 0 B

Hello @Felipe_Williams.

Thank you for the update.

Would you kindly run the following command from the Linux console and share the response with us?

curl -i -w "\n\nDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" \
"https://api.roonlabs.net/discover/1/profiles/828b05c2-a215-4a58-ad79-0373df041c1e/albums/newv3?c=qobuz-cl&contentPreferences=preferTidal,avoidMqa&textSources=Rovi-albums:en,Wikipedia:en,Rovi-artists:en,Rovi-compositions:en&tidal=max"

I did some executions. The second one was slower as you can see.
Thanks
Felipe

[audiolinux@audiolinux2 ~]$ curl -i -w "\n\nDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" \
"https://api.roonlabs.net/discover/1/profiles/828b05c2-a215-4a58-ad79-0373df041c1e/albums/newv3?c=qobuz-cl&contentPreferences=preferTidal,avoidMqa&textSources=Rovi-albums:en,Wikipedia:en,Rovi-artists:en,Rovi-compositions:en&tidal=max"
HTTP/2 403 
date: Fri, 04 Jul 2025 12:59:19 GMT
content-length: 0
server: cloudflare
cf-ray: 959ecc93280cb424-SCL
cf-cache-status: DYNAMIC
strict-transport-security: max-age=31536000; includeSubDomains
alt-svc: h3=":443"; ma=86400



DNS: 0.010771s
Connect: 0.017928s
TTFB: 0.514611s
Total: 0.514735s
[audiolinux@audiolinux2 ~]$ 
[audiolinux@audiolinux2 ~]$ curl -i -w "\n\nDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" \
"https://api.roonlabs.net/discover/1/profiles/828b05c2-a215-4a58-ad79-0373df041c1e/albums/newv3?c=qobuz-cl&contentPreferences=preferTidal,avoidMqa&textSources=Rovi-albums:en,Wikipedia:en,Rovi-artists:en,Rovi-compositions:en&tidal=max"
HTTP/2 403 
date: Fri, 04 Jul 2025 12:59:35 GMT
content-length: 0
server: cloudflare
cf-ray: 959eccd949fbb425-SCL
cf-cache-status: DYNAMIC
strict-transport-security: max-age=31536000; includeSubDomains
alt-svc: h3=":443"; ma=86400



DNS: 0.002937s
Connect: 0.008294s
TTFB: 5.413778s
Total: 5.413959s
[audiolinux@audiolinux2 ~]$ curl -i -w "\n\nDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" "https://api.roonlabs.net/discover/1/profiles/828b05c2-a215-4a58-ad79-0373df041c1e/albums/newv3?c=qobuz-cl&contentPreferences=preferTidal,avoidMqa&textSources=Rovi-albums:en,Wikipedia:en,Rovi-artists:en,Rovi-compositions:en&tidal=max"
HTTP/2 403 
date: Fri, 04 Jul 2025 12:59:54 GMT
content-length: 0
server: cloudflare
cf-ray: 959ecd728fc8d726-SCL
cf-cache-status: DYNAMIC
strict-transport-security: max-age=31536000; includeSubDomains
alt-svc: h3=":443"; ma=86400



DNS: 0.002481s
Connect: 0.010766s
TTFB: 0.178371s
Total: 0.178546s
[audiolinux@audiolinux2 ~]$ curl -i -w "\n\nDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" "https://api.roonlabs.net/discover/1/profiles/828b05c2-a215-4a58-ad79-0373df041c1e/albums/newv3?c=qobuz-cl&contentPreferences=preferTidal,avoidMqa&textSources=Rovi-albums:en,Wikipedia:en,Rovi-artists:en,Rovi-compositions:en&tidal=max"
HTTP/2 403 
date: Fri, 04 Jul 2025 12:59:57 GMT
content-length: 0
server: cloudflare
cf-ray: 959ecd81bc3db43d-SCL
cf-cache-status: DYNAMIC
strict-transport-security: max-age=31536000; includeSubDomains
alt-svc: h3=":443"; ma=86400



DNS: 0.002792s
Connect: 0.011903s
TTFB: 0.517508s
Total: 0.517666s
[audiolinux@audiolinux2 ~]$

Hello @Felipe_Williams

These TTFB variations (especially the spike to over 5 seconds) suggest there may be intermittent network performance issues between your device and the Roon backend — likely at the level of your local network, ISP, or route to the Cloudflare CDN.

While the other requests are fast and stable, even occasional delays with the homepage as you described.

To isolate the issue, we recommend testing the same request from a different network (e.g. mobile hotspot or another ISP) or checking for any signs of packet loss or instability on your LAN/Wi-Fi.

Hi, I tested again with several different API requests and with both mi ISPs first (starlink and movistar-fiber).

Roughly I see everything fine here, obviously starlink includes additional latency but the results are consistent.

I see too, the curl responses all end with a 403 error, I guess because of lack of authentication or tokens or something like that. So this is only testing the connection phase and not how much time the API is spending in really answering the request. That is consistent from what I see on roon Log, where I still see +1 seconds reply, when Roon is actually replying the API authenticating.

So if you sum every reply its > 5 secs.

Can you give an example of the curl authenticating so we can completely simulate this?

07/04 09:56:13 Debug: [easyhttp] [117] GET to https://api.roonlabs.net/discover/1/profiles/828b05c2-a215-4a58-ad79-0373df041c1e/albums/newv3?c=qobuz-cl&contentPreferences=preferTidal,avoidMqa&textSources=Rovi-albums:en,Wikipedia:en,Rovi-artists:en,Rovi-compositions:en&tidal=max returned after **1226 ms**, status code: 200, request body size: 0 B
07/04 09:56:14 Debug: [easyhttp] [124] GET to https://api.roonlabs.net/discover/1/profiles/828b05c2-a215-4a58-ad79-0373df041c1e/featured/collaboration?c=qobuz-cl&contentPreferences=preferTidal,avoidMqa&tidal=max returned after **1452 ms**, status code: 200, request body size: 0 B
07/04 09:56:26 Debug: [easyhttp] [139] GET to https://api.roonlabs.net/discover/1/profiles/828b05c2-a215-4a58-ad79-0373df041c1e/performers/recommended?profile=828b05c2-a215-4a58-ad79-0373df041c1e&c=qobuz-cl&languages=en,%3Een&tidal=max returned after **3726 ms**, status code: 200, request body size: 0 B
curl -i -w "\n\nDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" "https://api.roonlabs.net/discover/1/mixes/profiles/828b05c2-a215-4a58-ad79-0373df041c1e/mixes?localTime=2025-07-04T09%3a28%3a18.8664070&c=qobuz-cl&languages=en,%3Een&tidal=max"

starlink: 0,7 0,4 0,4 0,6
movistar: 0,2 0,2 0,2 0,2

curl -i -w "\n\nDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" "https://api.roonlabs.net/discover/1/profiles/828b05c2-a215-4a58-ad79-0373df041c1e/genres?c=qobuz-cl&tidal=max”

starlink: 0,7 0,6 0,7 0,6
movistar: 0,2 0,2 0,2 0,2

curl -i -w "\n\nDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" "https://api.roonlabs.net/internetradio/2/api/stations/all?count=100&sortby=popular&location=auto&maxDistance=100&format=msgpack&"

starlink: 0,6 0,7 0,4 0,7
movistar: 0,5 0,5 0,2 0,2

curl -i -w "\n\nDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" "https://www.qobuz.com/api.json/0.2/playlist/getFeatured?&limit=30&offset=0&request_sig=780b0fd4f61f6e4959bf54caae1d3f83&request_ts=1751635698&&type=editor-picks"

starlink: 0,4 0,4 0,4 0,3
movistar: 0,4 0,3 0,3 0,3

curl -i -w "\n\nDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" "https://api.roonlabs.net/discover/1/profiles/828b05c2-a215-4a58-ad79-0373df041c1e/featured/collaboration?c=qobuz-cl&contentPreferences=preferTidal,avoidMqa&tidal=max"

starlink: 0,8 0,6 0,6 0,6
movistar: 0,2 0,2 0,2 0,2

curl -i -w "\n\nDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" "https://api.roonlabs.net/discover/1/profiles/828b05c2-a215-4a58-ad79-0373df041c1e/featured/collaboration?c=qobuz-cl&contentPreferences=preferTidal,avoidMqa&tidal=max"

starlink: 0,4 0,6 0,3 0,3
movistar: 0,2 0,2 0,2 0,2

curl -i -w "\n\nDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" "https://api.roonlabs.net/discover/1/playlists/roon/editorial?profileId=828b05c2-a215-4a58-ad79-0373df041c1e&c=qobuz-cl&contentPreferences=preferTidal,avoidMqa&tidal=max"

starlink: 0,7 0,3 0,6 0,7
movistar: 0,2 0,2 0,2 0,2

curl -i -w "\n\nDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" "https://api.roonlabs.net/discover/1/profiles/828b05c2-a215-4a58-ad79-0373df041c1e/performers/recommended?profile=828b05c2-a215-4a58-ad79-0373df041c1e&c=qobuz-cl&languages=en,%3Een&tidal=max"

starlink: 0,6 0,7 0,3 0,6
movistar: 0,2 0,2 0,2 0,2

curl -i -w "\n\nDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" "https://api.roonlabs.net/discover/1/profiles/828b05c2-a215-4a58-ad79-0373df041c1e/featured/coveredperformer?c=qobuz-cl&contentPreferences=preferTidal,avoidMqa&tidal=max"

starlink: 0,6 0,3 0,6 0,3
movistar: 0,2 0,2 0,2 0,2

curl -i -w "\n\nDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" "https://api.roonlabs.net/discover/1/profiles/828b05c2-a215-4a58-ad79-0373df041c1e/albums/newv3?c=qobuz-cl&contentPreferences=preferTidal,avoidMqa&textSources=Rovi-albums:en,Wikipedia:en,Rovi-artists:en,Rovi-compositions:en&tidal=max"

starlink: 0,4 0,7 0,7 0,6
movistar: 0,2 0,2 0,2 0,2

Is there a setting in Roon when running both Tidal and Qobuz to choose a preferred one? If so maybe connect to your tidal account if you can still log into it and set the Roon setting to prefer Qobuz and log back out of Tidal.

1 Like

I did what you suggested, now log shows prefer qobuz but complete response is so slow.

07/04 11:19:02 Debug: [easyhttp] [39] GET to https://api.roonlabs.net/discover/1/profiles/828b05c2-a215-4a58-ad79-0373df041c1e/featured/coveredperformer?c=qobuz-cl&contentPreferenc
es=preferQobuz,avoidMqa&tidal=max returned after 8099 ms, status code: 200, request body size: 0 B

I would like to test the curl request with authentication to check the full response. How can we do that?

Thanks

Felipe

Hello @Felipe_Williams,

Thank you for testing and sharing the results.

From the diagnostic data, I can see that the same request sometimes completes quickly and other times takes significantly longer. For example, in the two cases below, the response times averaged around 1.4 seconds, which suggests that the issue is likely network-related rather than a problem with the API itself:

07/03 16:02:56 Debug: [easyhttp] [101] GET to https://api.roonlabs.net/discover/1/profiles/828b05c2-a215-4a58-ad79-0373df041c1e/albums/newv3?c=qobuz-cl&contentPreferences=preferTidal,avoidMqa&textSources=Rovi-albums:en,Wikipedia:en,Rovi-artists:en,Rovi-compositions:en&tidal=max returned after 1389 ms, status code: 200, request body size: 0 B
07/03 19:33:07 Debug: [easyhttp] [370] GET to https://api.roonlabs.net/discover/1/profiles/828b05c2-a215-4a58-ad79-0373df041c1e/albums/newv3?c=qobuz-cl&contentPreferences=preferTidal,avoidMqa&textSources=Rovi-albums:en,Wikipedia:en,Rovi-artists:en,Rovi-compositions:en&tidal=max returned after 1640 ms, status code: 200, request body size: 0 B

We’d be happy to take a closer look using the exact request payload for further analysis. However, since the development team is currently out of office due to the U.S. holiday, we’ll need to wait until Monday to proceed.

I’ll follow up here as soon as I have the necessary details.

1 Like

Hi Supp Team, any light on this?
Thanks
Felipe

Hi @Felipe_Williams,

Thank you again for your continued patience while we’ve been looking into this. We’ve discussed your case with our development team, and they’ve decided to escalate it to our product team for further review. The goal here is to ensure that we take the best possible approach to fully resolving the issue you’ve reported.

We understand how frustrating these kinds of problems can be, and we truly appreciate your willingness to work with us throughout the process. As soon as we receive any updates from the product team, we’ll be sure to share them with you here.

Please don’t hesitate to reach out in the meantime if you have any questions or new observations. We’re here to help.

Just a ping so the ticket doesn’t close automatically.

Hi @Felipe_Williams,

I wanted to share a quick update. We’ve opened a ticket with our product team to investigate this issue further. They’ll be reviewing the associated stats to better understand what’s going on.

As soon as we hear back from them, we’ll follow up with you here. Thanks again for your patience while we work on this.

Hi @Felipe_Williams,

I just heard back from our product team. They wanted to check whether you’ve noticed any slowness when using the Qobuz app directly, or if the issue only occurs when using Qobuz through Roon. This will help us narrow down the cause.

Hi @daniel , Qobuz app works normal. Only in Roon I have delays.

I would like to share a file (spreadsheet) with some details and statistics thay may be relevant (or not). How can I do that? Any email or way to share files privately?

Thanks

Felipe

Hi @Felipe_Williams,

The simplest would be to upload the spreadsheet to our secure log uploader. If you find the file size is too large, try this one instead.

Thank you for taking the time to share these details and we’ll watch for your upload.

Perfect, I just uploaded it. These are statistics I extracted from the logs of the past week, covering all used endpoints, including response times (min, avg, max, and standard deviation). When filtering and sorting by response times, certain patterns emerge showing which endpoints are taking longer — just in case it’s useful for your review.

– This is what Gemini think about it:

Hello Roon Labs Team,

I have analyzed the response time behavior of several of your API endpoints based on the data in the grouped_results.xlsx file. Below are the findings,
patterns, and hypotheses.


General Observations

  • Response Time Distribution: There is significant variability in response times, with values ranging from 52 ms to 56,358 ms. Most requests are resolved
    in under 2 seconds, but there are significant outliers that increase the average for certain endpoints.
  • 404 and 5xx Errors: A considerable number of 404 Not Found errors are observed, especially on endpoints related to fetching additional content
    (/albums/morefromgenre, /similar/albums, etc.). 500 Internal Server Error, 502 Bad Gateway, and 504 Gateway Timeout errors are also recorded, though
    less frequently. These errors negatively impact the user experience and should be investigated.
  • High Request Volume: The GET https://api.roonlabs.net/metadatatext/1/blobs endpoint is the most frequently requested, with 975 calls. Despite the high
    volume, it maintains a low average response time (421.88 ms), indicating good performance.

Patterns and Hypotheses

  1. Endpoints with High Response Times:
  • GET /discover/1/albums/{id}/albums/morefromgenre (with 404 errors): This endpoint shows the highest response times, with a maximum of 56,358 ms.
    • Hypothesis: The logic for finding “more albums from the same genre” may be inefficient, especially when no related content is found, resulting in a
      404 error and a long wait time. It would be beneficial to optimize this query or implement a caching mechanism.
  • GET /discover/1/albums/{id}/similar/albums and GET /discover/1/albums/{id}/recommended/albums: These endpoints also show high response times and a
    high standard deviation.
    • Hypothesis: Similar to the previous case, the recommendation and similarity search algorithms could be resource-intensive. The variability in
      response times might be due to the complexity of the queries, which depends on the specific album.
  1. Server Errors (5xx):
  • POST https://api.roonlabs.net/porttest/1/port/check (with 502 and 504 errors): This endpoint, used for port checking, is experiencing gateway errors.
    • Hypothesis: The errors could originate from an external service that the port test depends on, or from a network configuration that is preventing
      communication.
  • GET https://api.roonlabs.net/discover/1/mixes/profiles/{id}/mixes (with 500 errors):
    • Hypothesis: The internal server error might be related to fetching or processing mixes for a specific profile. Server logs should be reviewed to
      identify the root cause.
  1. Endpoints with Good Performance:
  • GET https://api.roonlabs.net/metadatatext/1/blobs: Despite the high request volume, it maintains excellent performance.
  • POST http://ws.audioscrobbler.com/2.0/: This external endpoint (Last.fm) also shows good performance, with an average of 486.36 ms over 530 requests.

Recommendations

  • Investigate 404 and 5xx Errors: Prioritize the investigation of 404 and 5xx errors to improve API reliability. Analyze server logs and, if necessary,
    add more telemetry to understand the causes of these errors.
  • Optimize Slow Endpoints: Profile and optimize endpoints with high response times, such as those for discovery and recommendations. Consider
    implementing caching for common responses.
  • Continuous Monitoring: Implement a continuous monitoring system to track response times and error rates for all endpoints. This will allow for
    proactive detection and resolution of performance issues.

I hope this analysis is helpful. Please let me know if you would like me to delve deeper into any specific endpoint or pattern.

Hi @Felipe_Williams,

Thanks for sharing! We’ll certainly pass it along to our development team. I noticed you mentioned you’ve tested out different DNS servers - did you do this on your Roon Server machine as well as your router?

We have seen users have a better experience in the past if they change their Router’s DNS servers from the ISP provided ones to Cloudflare DNS, Quad9 or Google DNS. Can you please give this a try and let me know if it helps?

I use adguard home, local with cache, avg response rate 2ms. Im using quad9 at this time as forwarder, I’ve used cloudflare in the past. Never ISP provided ones.

I can make specific tests if you need to, but Im not sure if thats the problem.

Felipe