"Modernized Player" breaks remote/WAN playback — iOS, Apple TV, Samsung TV, Windows

c_slip
Sat, 11 Apr 2026 20:29:49 +0000
Plex Players

UPDATE (Apr 12): Root cause identified. This is a PMS 1.43.x regression, not purely a client-side bug. Downgrading PMS to 1.42.2.10156 resolves the iOS playback issue completely — the Modernized Player works fine with the older server version. Credit to u/InflationOk2398 on Reddit for the lead.

However, the tvOS (Apple TV) Modernized Player remains broken even on PMS 1.42.2 — the legacy player toggle is still required. This appears to be a separate, independent client-side bug in the tvOS app.

TL;DR: Two separate bugs:

1. PMS 1.43.x changed HLS transcode output in a way that’s incompatible with the iOS Modernized Player (server regression)

2. tvOS Modernized Player is independently broken regardless of server version (client bug)

Server Version#: 1.43.1.10611 (also tested with 1.43.1.10561 and older 1.43.0.x — same result)

iOS Version#: 26.3.1
iOS Player Version#: 2026.5.0

Plex Web Player Version#: 4.159.0

tvOS Version#: 26.4
tvOS Player Version#: 8.45 (9684)

Samsung Platform Version #: 6.5
Samsung Client Version #: 5.94.1

Summary

After updating the iOS Plex app to version 2026.5.0 (which introduced the “Modernized Player UI”), remote playback from an iPhone is completely broken. The app fails to play any content remotely. This issue affects multiple client platforms that were updated around the same time, with different error messages per client (see below). Safari via app.plex.tv on the same device, same network, same content works perfectly.

Error Messages by Client

iOS Plex App 2026.5.0

Error: “Error Occurred — Error opening input.”
Status: No fix available — no legacy player toggle exists on iOS

Plex via Chrome on iOS (app.plex.tv)

Error: “Playback Error — Streaming this media is unsupported.”
Status: No fix — Chrome on iOS uses Apple’s WKWebView (not a full Chromium engine), same underlying issue as the native app

tvOS (Apple TV) Plex App — Modern Player

Error: Infinite loading spinner, never plays
Status: Fixed by switching to legacy video player in app settings

Samsung Frame TV (Tizen) — Remote Playback

Error: “Playback Error — An unexpected playback problem occurred.”
Status: Plays for a random duration then crashes mid-stream. No known workaround.

Safari on iOS via app.plex.tv

Error: None — works perfectly on both WiFi and cellular

Note: Safari uses its native AVPlayer HLS stack, which is why it works while the Plex app and Chrome (both using WKWebView) fail.

Windows Plex App

Error: Was failing to play remotely
Status: Fixed with clean reinstall (delete app + AppData folder, reinstall)

Note: Chrome on iOS uses Apple’s WKWebView (not a full Chromium engine), which explains why it exhibits the same failure as the native Plex app. Safari uses its native AVPlayer HLS stack, which is why it works.

Environment

Server OS: Windows Server 2022 Datacenter / Windows 11 Pro VMs (Hyper-V)

PMS Versions tested: 1.43.1.10611, 1.43.1.10561 and 1.43.0.10492 — all produce the same failure

Clients: iPhone 15 Pro Max (iOS 26.3.1) running Plex iOS 2026.5.0; Apple TV 4K 2nd Gen (tvOS 26.4) running Plex 8.45 (9684); Samsung The Frame (Platform 6.5) running Plex Client 5.94.1

Network path: Remote (WAN) via Cloudflare proxy + Traefik reverse proxy, also tested bypassing both (direct to PMS on port 32400) — same failure

What I’ve Ruled Out

To isolate this, I systematically tested every variable:

Bypassed Cloudflare Proxy (set DNS to “DNS only”) — still fails

Bypassed Traefik reverse proxy (port forwarded 32400 directly to PMS via OPNsense NAT, used http://<public-ip>:32400) — still fails

Tested against a second PMS server running on bare metal (not a VM, completely different machine and storage path) — still fails

Downgraded PMS to an older 1.43.1.x version and a 1.43.0.x version — still fails

Disabled Cloudflare AI bot blocking and managed robots.txt — still fails

Local playback on Apple TV at home (Direct Play) — works fine, confirming the issue is specific to remote/WAN playback

Safari on the same iPhone, same WiFi, same content via app.plex.tv — works perfectly

Safari on cellular (completely different network) — works perfectly

Apple TV with legacy video player enabled — works

The only variable that consistently correlates with failure is the new Modernized Player in client apps updated around early April 2026. Every server-side and network-path variable has been eliminated.

Server Log Analysis (Debug Logging)

I enabled debug logging on PMS and captured a playback attempt from the iOS app. The server-side logs tell a very clear story — the server does everything correctly, but the client abandons the session before consuming any video data.

Timeline of a single playback attempt

Content: 90 Day Fiancé: Before the 90 Days S08E12, remote WAN playback from iPhone.

1. PlayQueue creation (07:58:12.558)

The iPhone creates a playQueue via POST /playQueues — succeeds with 200.

2. Transcode decision request (07:58:12.965)

The iOS app sends a transcode decision request with these parameters:

directPlay=0 and directStream=0 — requesting HLS transcode only

videoResolution=1280x720

maxVideoBitrate=4000

location=wan

protocol=hls

3. Server processes and approves transcode (07:58:12.996)

The server returns 200 OK with a valid transcode decision:

Streaming Resource: Reached Decision id=399570 codes=(General=1001,Direct play not available; Conversion OK.
Direct Play=3000,App cannot direct play this item. Direct play is disabled.
Transcode=1001,Direct play not available; Conversion OK.)
media=(id=706592 part=(id=1409224 decision=transcode container=mkv protocol=hls
streams=(Video=(id=7374013 decision=transcode bitrate=3419 encoder=libx264 width=1280 height=720)
Audio=(id=7374014 decision=transcode bitrate=119 encoder=libopus channels=2 rate=48000)
Subtitle=(id=7374015 decision=copy languageCode=eng location=embedded))))

Source video: 1920x1080 h264 with EAC3 audio at ~9756kbps. Transcoded to 1280x720 at 3419kbps + opus 119kbps to fit the 4000kbps limit. Streaming resource allocated successfully.

4. HLS manifest served (07:58:13.372–13.780)

App requests start.m3u8 — returns 206 successfully

App requests index.m3u8 — transcoder fires up ffmpeg, starts encoding from local file path

5. Transcode session starts successfully (07:58:14.155)

Transcoder starts, full HLS playlist (46,734 bytes) served to the client. ffmpeg is actively encoding segments.

6. Client kills the session (07:58:13.185–14.337)

The client timeline states cycle through in rapid succession — all within ~1 second:

| Timestamp | State |

|---------------|---------------|
| 07:58:13.185 | buffering |
| 07:58:13.734 | paused |
| 07:58:14.299 | paused |
| 07:58:14.316 | buffering |
| 07:58:14.319 | stopped ← kills the session |
| 07:58:14.324 | playing (arrives too late, session already terminated) |

The field time=0 throughout — zero video frames were ever rendered. The ffmpeg transcoder process is intentionally killed (exit code -1059143458) because the client reported stopped.

Total time from playQueue creation to session death: 1.7 seconds.

The server successfully set up the transcode, started ffmpeg, and served the HLS manifest. The Modernized Player never consumed a single video segment before giving up.

Workarounds

Apple TV: Switch to legacy video player in app settings — works immediately

Windows Plex App: Clean uninstall (delete AppData), reinstall — works

iOS: No legacy player toggle exists. Use Safari + app.plex.tv as a workaround. Chrome on iOS does NOT work (uses WKWebView, same failure).

Samsung Frame TV: No known workaround yet

Request

1. Please add a legacy/old video player toggle to the iOS app, like Apple TV already has

2. Fix the Modernized Player’s HLS handling for remote transcode streams — the server is doing its job correctly, the new player is abandoning the session before the first segment is ready

Additional Logs

Available upon request

8 posts - 3 participants