Can't stream to AppleTV 13.3

Core Machine (Operating system/System info/Roon build number)

Intel Core i3, 8GB RAM, Ubuntu 18.04.3 LTS, Roon Server 1.7

Network Details (Including networking gear model/manufacturer and if on WiFi/Ethernet)

Comcast + Ubiquiti USG
Ubiquiti UniFi switches and AP’s

Audio Devices (Specify what device you’re using and its connection type - USB/HDMI/etc.)

Roon Server - > HDMI -> Onkyo AVR -> Speakers
AppleTV -> HDMI -> Onkyo AVR -> Speakers

Description Of Issue

Playing audio directly from the roon server over HDMI works fine as does to my phone running the Roon app, although I really want to be able to play over my Apple TV’s in the various rooms (Roon Server Ubuntu box is CLI only).

My AppleTV’s are running TVOS 13.3. Sharing is “everyone” and I set a password. However, after adding the AppleTV to the Roon app, hitting Play causes it to quickly flash “Pause” and then show the “Play” button again. No audio is ever played.

I’ve also tried streaming to a Kodi box (which supports AirPlay- v1 I believe), but it does the exact same thing. I’ve tried restarting Roon on the server and that doesn’t seem to have helped.

Hi Aaron,

Welcome to the community.

In settings > airplay > allow access on the Apple TV, do you have Require Password set to On? This will give you a 6 digit Password.

If you have Require Password set to Off, when you enable the Apple TV in Roon, Apple TV will show a 4 digit password on screen. I found that this Enabled the Apple TV, but would not play.

Try with Require Password set to On and use the 6 digit password. If you already do this, try and Disable Apple TV in Roon, set Require Password of Off, then On in Apple TV. Then Enable Apple TV in Roon using the new 6 digit password.

Let us know what happens.

Cheers, Greg

If I have Require Password to “off” so it does the 4 digit password thing then I can’t connect Roon to the AppleTV at all. If I turn it on, I can type in the 6 digit code to pair, but then nothing will play as I described above.

I tried disabling & re-enabling as you described and that didn’t change anything. The only additional piece of info that I’ve learned is that Roon seems to accept any password when adding the AppleTV device. Obviously I’ve tried to make sure I typed it in correctly, but that seems suspicious.

Another piece of info:

My other AppleTV (older generation) is running TVOS 7.4 (latest it supports). Basically same problem. I do Security -> Password it won’t stream. If I do Security -> Onscreen Code then the AppleTV never displays the 4 digit code for me to enter. Security -> None doesn’t work at all because Roon seems to require a password.

Hi @Aaron_Turner,

You mentioned that you restarted Roon, but have you tried rebooting the Core entirely and rebooting the networking gear yet? It might help. Does iTunes work as expected from your Core? You might need to install WINE to test this theory out, also this article might help.

I can try rebooting more things… Typically the UniFi switches are pretty bulletproof and everything is hardwired/Ethernet (not WiFi) except my phone which is what I was running the Roon app on.

iTunes? Uh, maybe I’m missing something (very likely, just recently learned about Roon) but I was hoping Roon would replace iTunes (at least for playback). If I need to install iTunes on my Linux box (it’s already on my Macs) then perhaps Roon isn’t for me.

So rebooted the switch, Ubuntu box running Roon and the AppleTV (both connected to the switch which was rebooted).

Basically, no change. I can select the Zone in the App, but when I press “Play” it doesn’t do anything.

Is there a log or something I should be looking at? Some way to turn on debugging?

I had a similar problem a while ago, with my HomePod. Roon support solved the problem for me. I’m not sure if it will help you, but see the following thread…(I marked it as solved so you can quickly see the solution they gave me without wading through the debugging process)…

Thanks Kuryan,

But yeah, i have “anyone on same network” enabled on my AppleTV.

Hi @Aaron_Turner,

This suggestion was to find out if Airplay works at all from the Ubuntu PC. If Airplay were not to work through iTunes as well (as a test), then it would point to a general Airplay issue instead of a Roon-specific one and we would be in a better position to address it.

Sure, we can take a look at logs. But before we do this, can you please reproduce the issue, note the exact local time + date + track you try playing (e.g. tried to play Dark Side of The Moon at 11:55AM on 1/6/20), let me know this info and then archive the logs by using these instructions?

The best way to get logs over would be via Dropbox / Google Drive / your preferred upload service, but if you don’t have any of these options just let me know and I can provide an alternate upload method.

Thanks!

Soooooo…

Dunno what I did, but it works now. All I did was:

  1. Start tcpdump on my Linux box to look at the network traffic between it and the AppleTV (v13.3)
  2. Switch playing between the older (v7.4) and newer AppleTV

And viola- it started playing.

Kinda wish I actually did something more interesting, but I guess I’ll roll with this for a few days and see if it’s stable or not.

Hi @Aaron_Turner,

Strange that it works now. In either case, do let me know if the system remains stable over the next few days.

Just FYI: stopped working again. not sure why. Honestly, Roon seems pretty cool, but just a bit too beta for the asking price.

Hi @Aaron_Turner,

We have thousands of users using Apple TV with their Roon systems without issue, so I believe you might be having an environmental factor in your setup causing this behavior.

If you would like to investigate this further, would you by any chance have another PC that can temporarily host the Roon Core connected the same way as the current Core?

I am wondering if the Ubuntu box has a firewall or is not passing network traffic properly and testing on a different Core should give us a good data point.

I checked for any firewall rules before I posted here and even flushed iptables just incase the Docker rules were causing problems (they weren’t). No problem ping’ing the AppleTV from my Unbuntu box it seems:

$ host 172.16.1.157
157.1.16.172.in-addr.arpa domain name pointer Home-Theater.int.synfin.net.

$ ping 172.16.1.157
PING 172.16.1.157 (172.16.1.157) 56(84) bytes of data.
64 bytes from 172.16.1.157: icmp_seq=1 ttl=64 time=1.31 ms
64 bytes from 172.16.1.157: icmp_seq=2 ttl=64 time=1.66 ms
64 bytes from 172.16.1.157: icmp_seq=3 ttl=64 time=1.86 ms
64 bytes from 172.16.1.157: icmp_seq=4 ttl=64 time=1.72 ms
^C
— 172.16.1.157 ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 1.317/1.642/1.865/0.201 ms

Honestly, I’m not interested in running Roon on another box other than perhaps my Synology, but according to the Roon docs it’s under-spec. My Mac’s are all laptops so they make poor servers and I haven’t owned/used a Windows PC since the mid 1990’s.

I dug through the logs from when it was failing and RoonServer is doing something really weird it seems:

— BEGIN —
01/14 19:30:45 Info: [Theater AppleTV] [zoneplayer] Starting playback
01/14 19:30:45 Debug: [identification] <77615> status: CouldNotIdentify
01/14 19:30:45 Trace: [library] finished with 1 dirty tracks 1 dirty albums 1 dirty performers 0 clumping tracks, 0 clumping auxfiles 0 compute tracks, 0 deleted tracks, 1 tracks to (re)load, 0 tracks to retain, 0 auxfiles to (
re)load, 0 auxfiles to retain, and 3 changed objects
01/14 19:30:45 Trace: [dbperf] flush 5469 bytes, 4 ops in 0 ms (cumulative 9938953 bytes, 6583 ops in 2500 ms)
01/14 19:30:45 Debug: [identification] <106799> status: CouldNotIdentify
01/14 19:30:45 Trace: [library] finished with 1 dirty tracks 1 dirty albums 1 dirty performers 0 clumping tracks, 0 clumping auxfiles 0 compute tracks, 0 deleted tracks, 1 tracks to (re)load, 0 tracks to retain, 0 auxfiles to (
re)load, 0 auxfiles to retain, and 3 changed objects
01/14 19:30:45 Trace: [dbperf] flush 5118 bytes, 4 ops in 1 ms (cumulative 9944071 bytes, 6587 ops in 2501 ms)
01/14 19:30:45 Debug: [identification] <25135> status: CouldNotIdentify
01/14 19:30:45 Trace: [library] finished with 6 dirty tracks 1 dirty albums 2 dirty performers 3 dirty works 6 dirty performances 0 clumping tracks, 0 clumping auxfiles 0 compute tracks, 0 deleted tracks, 6 tracks to (re)load,
0 tracks to retain, 0 auxfiles to (re)load, 0 auxfiles to retain, and 18 changed objects
01/14 19:30:45 Trace: [dbperf] flush 32535 bytes, 14 ops in 1 ms (cumulative 9976606 bytes, 6601 ops in 2502 ms)
01/14 19:30:45 Trace: [airplay/client] Connecting to airplay server
01/14 19:30:45 Warn: [airplay/rtsp] SocketException while connecting to RTSP server: Connection refused
01/14 19:30:45 Warn: [airplay/client] Failed to connect: Result[Status=NetworkError]
01/14 19:30:45 Info: [airplay] AirPlay device connection failed to: AirPlayDevice[DeviceId=086698F3AFC1@Home Theater._raop._tcp.local, Name=Home-Theater.local, Model=AppleTV5,3, IPEndPoint=172.16.2.1:7000]
01/14 19:30:45 Trace: [prebuffer] ready 149940/441000 (34%) @ 30/213 sec
01/14 19:30:45 Debug: [identification] <26415> status: CouldNotIdentify
01/14 19:30:45 Info: [zone Theater AppleTV] OnPlayFeedback Playing
01/14 19:30:45 Trace: [Theater AppleTV] [LowQuality, 24/44 AAC => 16/44] [PLAYING @ 0:30/3:33] Syndrome - Gemini Syndrome
01/14 19:30:45 Trace: [musicpowerstate] music is playing, preventing idle sleep
01/14 19:30:45 Trace: [airplay] disconnected
01/14 19:30:45 Trace: [zone] Theater AppleTV received transport control from endpoint integration: suspend
01/14 19:30:45 Trace: [library] finished with 5 dirty tracks 1 dirty albums 2 dirty performers 1 dirty works 5 dirty performances 0 clumping tracks, 0 clumping auxfiles 0 compute tracks, 0 deleted tracks, 5 tracks to (re)load, 0 tracks to retain, 0 auxfiles to (re)load, 0 auxfiles to retain, and 14 changed objects
01/14 19:30:45 Trace: [zone Theater AppleTV] Theater AppleTV received transport control from Home Theater: suspend
01/14 19:30:45 Trace: [zone Theater AppleTV] Suspend
01/14 19:30:45 Trace: [dbperf] flush 26225 bytes, 12 ops in 2 ms (cumulative 10002831 bytes, 6613 ops in 2504 ms)
01/14 19:30:45 Info: [zone Theater AppleTV] OnPlayFeedback Stopped
01/14 19:30:45 Trace: [Theater AppleTV] [LowQuality, 24/44 AAC => 16/44] [PAUSED @ 0:30/3:33] Syndrome - Gemini Syndrome
01/14 19:30:45 Info: [audio/env] [zoneplayer] All streams were disposed
01/14 19:30:45 Info: [audio/env] [zoneplayer -> stream] All streams were disposed
— END —

This line in particular:

01/14 19:30:45 Info: [airplay] AirPlay device connection failed to: AirPlayDevice[DeviceId=086698F3AFC1@Home Theater._raop._tcp.local, Name=Home-Theater.local, Model=AppleTV5,3, IPEndPoint=172.16.2.1:7000]

172.16.2.1 is uh, “interesting”. That’s the firewall/router to the internet; well sorta. I mean, it’s technically the firewall/router, but it’s also the wrong IP/interface. Perhaps my routing table will explain best:

$ ip route
default via 172.16.1.1 dev p3p1 onlink
172.16.1.0/24 dev p3p1 proto kernel scope link src 172.16.1.100
172.16.2.0/24 dev p3p1.100 proto kernel scope link src 172.16.2.100

As you can see, the default route to the internet is via 172.16.1.1 which is the same firewall/router. The Ubuntu box is on both VLAN 100 and the native un-tagged interface. The AppleTV isn’t even on that network (again, it’s 172.16.1.157) so why is it talking RTSP over there?

Anyways, my free 14 day evaluation is almost over and I don’t have time to debug further before it expires so I just cancelled so I don’t get a big bill.

Hi @Aaron_Turner,

Thanks for that additional info, I have some feedback for you if you would like to look into this further:

The trial is not an issue, I will reach out via private message regarding this.

I believe the Docker aspect might be playing a part into this issue. If you install RoonServer on Ubuntu nativity it would be much easier to troubleshoot.

According to the logs you sent, it looks like Roon is trying to use a busy socket, maybe Docker is using it for something else so checking on native Ubuntu will be a good step in the right direction, you can install Roon there by using our Linux Install Instructions.

Thank you for extending the trial.

Sorry, sounds like a miscommunication:

I was running Docker for something else, not RoonServer which runs directly on the Ubuntu OS. I’ve turned off Docker and as I previously mentioned I flushed the iptables rules so everything is clear:

$ iptables -nvL
Chain INPUT (policy ACCEPT 3769K packets, 3474M bytes)
pkts bytes target prot opt in out source destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 5091K packets, 5662M bytes)
pkts bytes target prot opt in out source destination

More debug:

TCP ports open

$ netstat -an4 | grep LIST
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9091 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:36035 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:60741 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:41445 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:41737 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:9004 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9100 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:34573 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9101 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:27117 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 172.16.2.100:53 0.0.0.0:* LISTEN
tcp 0 0 172.16.1.100:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:50807 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:56027 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:35995 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:42267 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:44733 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9150 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5023 0.0.0.0:* LISTEN

UDP ports open

$ netstat -an4u
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 0.0.0.0:56534 0.0.0.0:*
udp 0 0 0.0.0.0:60741 0.0.0.0:*
udp 0 0 0.0.0.0:48600 0.0.0.0:*
udp 0 0 0.0.0.0:57320 0.0.0.0:*
udp 0 0 172.16.2.100:53 0.0.0.0:*
udp 0 0 172.16.1.100:53 0.0.0.0:*
udp 0 0 127.0.0.1:53 0.0.0.0:*
udp 0 0 127.0.0.53:53 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp 0 0 172.16.1.255:137 0.0.0.0:*
udp 0 0 172.16.1.100:137 0.0.0.0:*
udp 0 0 172.16.2.255:137 0.0.0.0:*
udp 0 0 172.16.2.100:137 0.0.0.0:*
udp 0 0 0.0.0.0:137 0.0.0.0:*
udp 0 0 172.16.1.255:138 0.0.0.0:*
udp 0 0 172.16.1.100:138 0.0.0.0:*
udp 0 0 172.16.2.255:138 0.0.0.0:*
udp 0 0 172.16.2.100:138 0.0.0.0:*
udp 0 0 0.0.0.0:138 0.0.0.0:*
udp 0 0 0.0.0.0:33292 0.0.0.0:*
udp 0 0 0.0.0.0:53840 0.0.0.0:*
udp 0 0 0.0.0.0:642 0.0.0.0:*
udp 0 0 127.0.0.1:716 0.0.0.0:*
udp 0 0 0.0.0.0:9001 0.0.0.0:*
udp 0 0 0.0.0.0:9001 0.0.0.0:*
udp 0 0 0.0.0.0:9003 0.0.0.0:*
udp 0 0 0.0.0.0:9003 0.0.0.0:*
udp 0 0 0.0.0.0:9003 0.0.0.0:*
udp 0 0 0.0.0.0:9003 0.0.0.0:*
udp 0 0 0.0.0.0:9003 0.0.0.0:*
udp 0 0 0.0.0.0:9003 0.0.0.0:*
udp 0 0 0.0.0.0:9003 0.0.0.0:*
udp 0 0 0.0.0.0:50192 0.0.0.0:*
udp 0 0 0.0.0.0:33834 0.0.0.0:*
udp 0 0 0.0.0.0:38577 0.0.0.0:*
udp 0 0 0.0.0.0:51188 0.0.0.0:*
udp 0 0 0.0.0.0:2049 0.0.0.0:*
udp 0 0 0.0.0.0:43904 0.0.0.0:*
udp 0 0 0.0.0.0:56326 0.0.0.0:*
udp 0 0 0.0.0.0:52298 0.0.0.0:*

Roon processes

$ ps auxww | grep Roon
aturner 17806 0.0 0.0 14428 1000 pts/4 S+ 18:11 0:00 grep --color=auto Roon
root 18760 0.0 0.0 12884 2108 ? Ss Jan14 0:00 /bin/bash /opt/RoonServer/start.sh
root 18776 0.0 0.4 431096 34384 ? Sl Jan14 0:30 /opt/RoonServer/RoonMono/bin/RoonServer --debug --gc=sgen --server RoonServer.exe
root 18798 4.9 9.0 2598404 732308 ? SLl Jan14 210:09 /opt/RoonServer/RoonMono/bin/RoonAppliance --debug --gc=sgen --server RoonAppliance.exe -watchdogport=44733
root 18799 0.0 0.0 8088 1112 ? S Jan14 0:00 /opt/RoonServer/Server/processreaper 18798
root 18846 0.0 0.2 1069624 19764 ? Sl Jan14 2:23 /opt/RoonServer/RoonMono/bin/RAATServer --debug --gc=sgen --server RAATServer.exe

What open TCP/UDP sockets RoonAppliance and RAATServer have

$ lsof -p 18798,18846 -a -Pi4
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
RoonAppli 18798 root 12u IPv4 8384681 0t0 TCP brix.int.synfin.net:49966->80.185.73.34.bc.googleusercontent.com:9200 (ESTABLISHED)
RoonAppli 18798 root 18u IPv4 6162308 0t0 TCP *:9100 (LISTEN)
RoonAppli 18798 root 25u IPv4 6162313 0t0 UDP *:9003
RoonAppli 18798 root 38u IPv4 6162314 0t0 UDP *:33292
RoonAppli 18798 root 39u IPv4 6164860 0t0 TCP localhost:38534->localhost:44733 (ESTABLISHED)
RoonAppli 18798 root 42u IPv4 6164868 0t0 UDP *:9003
RoonAppli 18798 root 43u IPv4 6164084 0t0 TCP *:9101 (LISTEN)
RoonAppli 18798 root 44u IPv4 6164869 0t0 UDP *:9003
RoonAppli 18798 root 54u IPv4 6162325 0t0 TCP localhost:54348->localhost:9004 (ESTABLISHED)
RoonAppli 18798 root 77u IPv4 6162389 0t0 UDP *:9001
RoonAppli 18798 root 78u IPv4 6162390 0t0 UDP *:52298
RoonAppli 18798 root 79u IPv4 6162391 0t0 UDP *:9001
RoonAppli 18798 root 80u IPv4 6162392 0t0 UDP *:53840
RoonAppli 18798 root 86u IPv4 6164893 0t0 TCP *:9150 (LISTEN)
RAATServe 18846 root 5u IPv4 6164087 0t0 TCP localhost:9004 (LISTEN)
RAATServe 18846 root 6u IPv4 6164088 0t0 TCP localhost:9004->localhost:54348 (ESTABLISHED)
RAATServe 18846 root 14u IPv4 6164097 0t0 UDP *:9003
RAATServe 18846 root 15u IPv4 6164098 0t0 UDP *:48600
RAATServe 18846 root 16u IPv4 6164099 0t0 UDP *:9003
RAATServe 18846 root 17u IPv4 6164100 0t0 UDP *:57320
RAATServe 18846 root 18u IPv4 6164101 0t0 UDP *:9003
RAATServe 18846 root 19u IPv4 6164102 0t0 UDP *:56534
RAATServe 18846 root 20u IPv4 6164103 0t0 UDP *:51188
RAATServe 18846 root 21u IPv4 6164104 0t0 UDP *:9003
RAATServe 18846 root 23u IPv4 6164105 0t0 TCP *:34573 (LISTEN)
RAATServe 18846 root 33u IPv4 6162404 0t0 TCP *:41737 (LISTEN)

Hi @Aaron_Turner,

Thanks for confirming that this behavior occurs on the regular Ubuntu setup and not in Docker. I believe it’s best if we try using a different Core to determine weather the Ubuntu networking settings is playing a part in this behavior.

Would it be possible for you to temporarily host the Roon Core on one of your MacOS laptops and let us know if the issue is the same there? This should help clarify if this issue is related to the Core or elsewhere on the network.

You can assign the MacOS as the Core by installing Roon on it, and on the “Choose your Core” page select “Use this PC” (instead of connecting to the Ubuntu Core). You may be presented with an “Authorizations” screen and be prompted to un-authorize the Ubuntu Core, there are no adverse affects for switching between Cores and you can do so as many times as you wish, but you are limited to just one “active” Roon Core at a time.

Installed Roon on my MBPro. Mounted the same songs off my Synology and things seem much better. Meaning: things play without a hitch for the most part. Occasionally some brief pauses mid-song which may just be wifi network congestion or whatever, but at least songs seem to play pretty consistently.

Hi @Aaron_Turner,

Glad to hear the MacBook is working out better for you. Since switching the Core helped here, something about the initial Ubuntu setup is affecting Roon adversely. I can’t comment on where exactly things are going wrong with the routing on Ubuntu, but you may want to take a closer look there or keep the Core on the Mac/a different platform.