What is the operating system of your Roon Server host machine?
· Linux Server (Ubuntu, Fedora, ArcLinux...)
What kind of device are you using to perform the login?
· Mac
Where are you trying to login?
· I can't log into TIDAL, KKBox or nugs
Have you been redirected to the Tidal/KKBOX/nugs login page in your browser?
· Yes
Please try clearing the browser cache and cookies for the [l](https://account.roon.app/)ogin page where you have been redirected
· No, the issue remains the same
Content / Popup Blockers
· No, the issue remains the same
Temporarily try to use a different browser
· No, the issue remains the same
Please try to restart your Roon Server by closing the Roon Server app in the taskbar (MacOS), task manager (Windows) or rebooting your Roon Server machine.
· No, the issue remains the same
Different device
· I cannot switch to a different device
Are you still facing the issue on the different device
· No, the issue remains the same
Record the timestamp
· 13-Mar-2026 17:45:30 (GMT)
Describe the issue
RoonServer installed on an Intel NUC running DietPi. Headless install, no GUI, setup via terminal. Local files play fine, Qobuz plays fine, error message saying can't login to Tidal.
The issue is that when I click on 'Edit', and then 'Retry', it opens the Tidal login page in a browser on the machine I am connecting from (not the NUC running Roon). I get the messages ‘Verifying device’ and 'Login successful', but I suspect that it is verifying the device I am connecting from, not the NUC.
How can I login to Tidal on a headless server with no GUI? Or do I need to install a GUI?
For info, I chose DietPi over ROCK as I have other media services running on the NUC.
Thanks for writing in and for sharing your report! The fact that you see “Login successful” in your browser but the NUC still shows a failure, suggests the token isn’t making it back to the Roon Server or the Server is rejecting it immediately.
OAuth tokens are extremely sensitive to time. If your NUC’s system clock is even 20–30 seconds different from Tidal’s servers, the login will succeed in the browser, but the NUC will reject the token as “expired” or “invalid” the moment it arrives.
The Fix: Run date in your DietPi terminal. Compare it to a digital clock on your phone.
The Command: To force a sync, run:
sudo dietpi-config
Navigate to Advanced Options > NTP Mirror and ensure it's synced. You can also run sudo chronyc -a makestep if you have chrony installed to force an immediate jump.
If that doesn’t help, UK ISPs like EE often have “Smart Setup” or “Web Protect” features enabled by default. These can sometimes “transparently” proxy DNS requests, which messes up the handshake between Roon Labs and Tidal.
Don't rely on the router's DNS. Set the NUC to use Cloudflare or Google directly.
The Command:
Run sudo dietpi-config.
Go to Network Options: Adapters > Ethernet.
Change DNS 1 to 1.1.1.1 and DNS 2 to 8.8.8.8.
Apply and restart the network.
And if this doesn’t help, sometimes the Roon database on Linux gets "stuck" on a bad login attempt and won't look for a new token even if you provide one.
Stop Roon: sudo systemctl stop roonserver
Navigate to your database: cd /mnt/dietpi_userdata/roonserver/RoonServer/
Find the Cache folder. Delete the contents of the Tidal folder specifically (if it exists) or rename the whole Cache folder to Cache_old.
Restart Roon: sudo systemctl start roonserver
Try the login again from your Remote.
Let me know if any of the above help, thank you @loveandfunk!