Back to overview
Downtime

Plex is down

Oct 10 at 08:48pm EDT
Affected services
Plex

Resolved
Oct 11 at 12:39pm EDT

Root Cause Analysis: Plex Transcoding Failures on Ubuntu 25.04

Incident date: October 11, 2025

Detected: October 11, 2025 00:37 UTC

Resolved: October 11, 2025 00:48 UTC

Severity: High (media streaming unavailable)

Author: Kitzy

Executive summary

Plex transcoding failed completely on clients following Ubuntu host upgrade from 24.10 to 25.04. All transcode attempts crashed with FFmpeg errors. Root cause was an incompatibility between the LinuxServer.io Plex Docker image's bundled FFmpeg and Ubuntu 25.04. Switching to the official Plex Docker image resolved the issue immediately.

Impact: 100% of transcoding attempts failed for 11 minutes. Direct play was unaffected.

Timeline

October 11, 2025 ~00:00: Upgraded Beelink host from Ubuntu 24.10 to 25.04

October 11, 2025 00:17: Upgraded Plex container from ls280 to ls282

October 11, 2025 00:37: First transcoding failure detected on AppleTV

October 11, 2025 00:37-00:48: Troubleshooting and diagnosis

October 11, 2025 00:48: Switched to official Plex image (plexinc/pms-docker)

October 11, 2025 00:48: Transcoding confirmed working

Root cause

The LinuxServer.io Plex Docker image (lscr.io/linuxserver/plex) contains a custom-built FFmpeg transcoder that generates commands including the segment_copyts option for subtitle segmentation. This option is not recognized by the version of FFmpeg bundled in the LinuxServer image, causing the transcoder to crash with exit code 8.

While this bug exists in all versions of the LinuxServer image, it was not triggered on Ubuntu 24.10. The Ubuntu 25.04 environment (likely kernel 6.14.0 or updated DRM libraries) causes Plex's transcoder command generator to include the problematic segment_copyts option in its FFmpeg invocations.

Error logs:

ERROR - [Req#12c/Transcode] Unrecognized option 'segment_copyts'.
ERROR - [Req#12f/Transcode] Error splitting the argument list: Option not found
Jobs: '/usr/lib/plexmediaserver/Plex Transcoder' exit code for process 513 is 8 (failure)

Contributing factors

  1. Ubuntu version management: Running non-LTS Ubuntu (24.10) which went EOL, forcing upgrade to 25.04 development release
  2. Hardware requirements: Original rationale for using 24.10 was newer kernel requirement for Intel N150 hardware
  3. Image selection: LinuxServer.io image chosen over official image without awareness of potential compatibility issues
  4. Testing gap: No transcoding tests performed immediately after Ubuntu upgrade
  5. Documentation: Ubuntu version and Plex image details not documented in wiki

Resolution

Switched from LinuxServer.io Plex image to official Plex image:

# Before
image: lscr.io/linuxserver/plex:latest
environment:
  - PUID=996
  - PGID=988
  - VERSION=latest

# After  
image: plexinc/pms-docker:latest
environment:
  - TZ=America/New_York

Additional changes:
- Removed PUID/PGID environment variables (not used by official image)
- Fixed config directory ownership: chown -R 797:797 /mnt/data/docker/volumes/plex
- Retained hardware transcoding configuration (device passthrough and render group)

The official Plex image uses a different FFmpeg build that does not have this bug.

Prevention and action items

Immediate actions (completed)

  • Switch to official Plex image
  • Document Ubuntu version in Current Hardware wiki page
  • Create troubleshooting runbook for this issue
  • Verify hardware transcoding works correctly

Short-term actions

  • Evaluate Ubuntu 24.04 LTS with HWE kernel as alternative to 25.04
  • Document specific hardware compatibility issue that required 24.10 originally
  • Add transcoding test to post-upgrade checklist
  • Set up automated testing for critical services after infrastructure changes

Long-term actions

  • Establish OS selection criteria (prefer LTS over non-LTS)
  • Document image selection rationale (official vs community-maintained)
  • Implement pre-production testing environment for infrastructure changes
  • Add monitoring/alerting for transcoding failures

Lessons learned

What went well

  • Hardware acceleration configuration (device passthrough, render group) was correct
  • Systematic troubleshooting approach identified root cause quickly
  • Official Plex image provided immediate resolution without data loss

What could be improved

  • OS stability vs hardware support tradeoff: Running development release (Ubuntu 25.04) in production introduces unnecessary risk. Should have investigated Ubuntu 24.04 LTS + HWE kernel instead of jumping to non-LTS versions.
  • Testing after upgrades: No transcoding test performed after Ubuntu upgrade. Should have caught this immediately.
  • Image selection: No documented rationale for choosing LinuxServer.io image over official image. Community images may lag behind in compatibility.
  • Documentation: Current Hardware page showed "OS: Ubuntu" without version number, making troubleshooting harder.

Questions for follow-up

  1. What specific hardware feature required kernel >6.8 that 24.04 LTS didn't provide?
  2. Does Ubuntu 24.04 LTS + HWE kernel provide adequate support for Intel N150?
  3. Should we establish a policy preferring official Docker images over community alternatives?

Technical details

Environment

  • Host OS: Ubuntu 25.04 (kernel 6.14.0-33-generic)
  • Hardware: Beelink EQ14, Intel N150 (Alder Lake-N), 16GB RAM
  • Container runtime: Docker via Portainer
  • Previous image: lscr.io/linuxserver/plex:1.42.2.10156-f737b826c-ls282
  • Current image: plexinc/pms-docker:1.42.2.10156-f737b826c

Verification

Intel VA-API drivers confirmed working on host:

$ sudo vainfo --display drm --device /dev/dri/renderD128
vainfo: VA-API version: 1.22 (libva 2.22.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 25.1.2

Hardware transcoding confirmed active in Plex dashboard with "HW" indicator.

Related documentation

Updated
Oct 10 at 09:13pm EDT

Plex recovered.

Updated
Oct 10 at 09:07pm EDT

Plex went down.

Updated
Oct 10 at 08:52pm EDT

Plex recovered.

Created
Oct 10 at 08:48pm EDT

Plex went down.