Server Version#: 4.135.2
Player Version#: 8.38.1
One feature we use a lot with our kids is flinging something accessible to us (but not their account) from our phones to the TV. On Roku, this works perfectly: they log into the unlocked “All” account that has always-available family-friendly content, and then we fling whatever special thing we’re letting them watch now.
However, I’ve discovered that this doesn’t work on an iPad. If I try flinging something that a managed account doesn’t have access to, the iPad thinks about it, but then fails with the message, “Playback Stopped: Couldn’t create the playback session for this item”.
Here’s the relevant excerpt from the server logs when the iPad is logged into the unlocked All account and it fails:
Aug 09, 2024 13:39:14.535 [140120148237112] Debug — [Req#d0ca/Transcode] TranscodeUniversalRequest: using augmented profile iOS
Aug 09, 2024 13:39:14.535 [140120148237112] Debug — [Req#d0ca/Transcode] Downloading document http://127.0.0.1:32400/library/metadata/12805?includeBandwidths=1&offset=-1&X-Plex-Incomplete-Segments=1&X-Plex-Session-Identifier=FD60A097-4A70-40B1-873D-08984F843972
Aug 09, 2024 13:39:14.535 [140120148237112] Debug — [Req#d0ca/Transcode/Req#d0e6] Auth: authenticated user 355586562 as All
Aug 09, 2024 13:39:14.537 [140120148237112] Warning — [Req#d0ca/Transcode/Req#d0e6] Invalid library metadata ID 12805 passed.
Aug 09, 2024 13:39:14.537 [140120148237112] Error — [Req#d0ca/Transcode] downloadContainer: expected MediaContainer element, found html
Aug 09, 2024 13:39:14.537 [140120148237112] Error — [Req#d0ca/Transcode] TranscodeUniversalRequest: unable to get container: /library/metadata/12805?includeBandwidths=1&offset=-1&X-Plex-Incomplete-Segments=1&X-Plex-Session-Identifier=FD60A097-4A70-40B1-873D-08984F843972
Aug 09, 2024 13:39:14.538 [140120241261368] Debug — Completed: [192.168.0.233:63126] 400 GET /video/:/transcode/universal/decision?advancedSubtitles=text&audioBoost=100&autoAdjustQuality=0&directPlay=1&directStream=1&directStreamAudio=1&location=lan&mediaBufferSize=20000&partIndex=0&path=%2Flibrary%2Fmetadata%2F12805&protocol=hls&subtitleSize=100&subtitles=auto&useDoviCodecs=1&videoResolution=4096x2160 (8 live) #d0ca TLS GZIP 3ms 384 bytes (pipelined: 7)
And for reference, here’s what happens when I switch to my account on the iPad and fling from my phone and it succeeds:
Aug 09, 2024 13:40:55.774 [140120154446648] Debug — [Req#d82e/Transcode] TranscodeUniversalRequest: using augmented profile iOS
Aug 09, 2024 13:40:55.774 [140120154446648] Debug — [Req#d82e/Transcode] Downloading document http://127.0.0.1:32400/library/metadata/12805?includeBandwidths=1&offset=-1&X-Plex-Incomplete-Segments=1&X-Plex-Session-Identifier=FD60A097-4A70-40B1-873D-08984F843972
Aug 09, 2024 13:40:55.783 [140120154446648] Debug — [Req#d82e/Transcode] We're going to try to auto-select an audio stream for account 1.
Aug 09, 2024 13:40:55.783 [140120154446648] Debug — [Req#d82e/Transcode] Selecting best audio stream for part ID 20078 (language: xn)
Aug 09, 2024 13:40:55.783 [140120154446648] Debug — [Req#d82e/Transcode] Audio Stream: 54726, Subtitle Stream: 0
Aug 09, 2024 13:40:55.784 [140120154446648] Debug — [Req#d82e/Transcode] MDE: Selected protocol http; container: mp4
Aug 09, 2024 13:40:55.784 [140120154446648] Debug — [Req#d82e/Transcode] MDE: analyzing media item 20001
...
Aug 09, 2024 13:40:55.784 [140120154446648] Debug — [Req#d82e/Transcode] Streaming Resource: Added session 0x7f7049686cb8:FD60A097-4A70-40B1-873D-08984F843972
Aug 09, 2024 13:40:55.785 [140120154446648] Debug — [Req#d82e/Transcode] Streaming Resource: Reached Decision id=12805 codes=(General=1000,Direct play OK. Direct Play=1000,Direct play OK.) media=(id=20001 part=(id=20078 decision=direct play protocol=http streams=(Video=(id=54725 decision= width=960 height=540) Audio=(id=54726 decision= channels=2 rate=48000))))
Aug 09, 2024 13:40:55.786 [140120241261368] Debug — Completed: [192.168.0.233:63176] 200 GET /video/:/transcode/universal/decision?advancedSubtitles=text&audioBoost=100&autoAdjustQuality=0&directPlay=1&directStream=1&directStreamAudio=1&location=lan&mediaBufferSize=20000&partIndex=0&path=%2Flibrary%2Fmetadata%2F12805&protocol=hls&subtitleSize=100&subtitles=auto&useDoviCodecs=1&videoResolution=4096x2160 (20 live) #d82e TLS GZIP 13ms 2516 bytes (pipelined: 2)
Flinging to the Roku looks much the same when flinging from my phone to the All account:
Aug 09, 2024 13:46:06.825 [140120179759928] Debug — [Req#e7bf/Transcode] TranscodeUniversalRequest: using augmented profile Roku-7.x
Aug 09, 2024 13:46:06.825 [140120179759928] Debug — [Req#e7bf/Transcode] Downloading document http://127.0.0.1:32400/library/metadata/12805?includeBandwidths=1&offset=0&X-Plex-Client-Capabilities=videoDecoders%3dh264%7bprofile%3ahigh%26resolution%3a1080%26level%3d41%7d%3baudioDecoders%3daac%7bchannels%3a2%7d%2cac3%7bchannels%3a6%7d%2ceac3%7bchannels%3a8%7d&X-Plex-Incomplete-Segments=1&X-Plex-Session-Identifier=fdce77d25be51974618ef197193eceef
Aug 09, 2024 13:46:06.831 [140120179759928] Debug — [Req#e7bf/Transcode] We're going to try to auto-select an audio stream for account 1.
Aug 09, 2024 13:46:06.831 [140120179759928] Debug — [Req#e7bf/Transcode] Selecting best audio stream for part ID 20078 (language: xn)
Aug 09, 2024 13:46:06.831 [140120179759928] Debug — [Req#e7bf/Transcode] Audio Stream: 54726, Subtitle Stream: 0
Aug 09, 2024 13:46:06.832 [140120179759928] Debug — [Req#e7bf/Transcode] Streaming Resource: Added session 0x7f70496d1b38:fdce77d25be51974618ef197193eceef
Aug 09, 2024 13:46:06.832 [140120179759928] Debug — [Req#e7bf/Transcode] Streaming Resource: Reached Decision id=12805 codes=(MDE=1000,Direct play OK.) media=(id=20001 part=(id=20078 decision=direct play protocol=hls streams=(Video=(id=54725 decision= width=960 height=540) Audio=(id=54726 decision= channels=0 rate=0))))
Aug 09, 2024 13:46:06.833 [140120243370808] Debug — Completed: [192.168.0.206:54244] 200 GET /video/:/transcode/universal/decision?protocol=hls&mediaIndex=0&waitForSegments=1&videoQuality=100&session=56543da0-cad3-4a06-a24a-33a31f0de4c3-585&mediaBufferSize=50000&offset=0&partIndex=0&location=lan&videoResolution=3840x2160&directPlay=1&path=%2Flibrary%2Fmetadata%2F12805&directStream=1&hasMDE=1&skipSubtitles=1 (17 live) #e7bf TLS GZIP 23ms 2505 bytes (pipelined: 5)
So it looks like there’s some permissions check happening for iOS that’s causing the fling to fail. If that’s the intended behavior, please change it to match Roku and please don’t change the Roku behavior! That’s a major use case for us!