Skip to content

Incident Report: Plex Playback Failure

Date: 2026-01-25 Affected Service: Plex Media Server (starfleet-compute) Severity: Medium (Service degraded)

🚨 Issue

Users reported that while media content (movies/TV) was visible in the Plex interface, playback failed for all items.

🔎 Root Cause Analysis

An investigation revealed a User ID (UID) mismatch between the Docker container and the NFS storage.

  • Plex Container: Configured with PUID=1000 (Standard User).
  • Media Storage: Files on /mnt/media are owned by UID=3000 (likely a specific 'media' user on TrueNAS).
  • Permissions: While standard permissions were 777, the presence of extended ACLs (drwxrwxrwx+) on the ZFS dataset prevented the container user (1000) from reading the files, despite the open permissions bits.

🛠️ Resolution

Primary Fix: Container Configuration

The Plex container configuration was updated to run as the owner of the media files.

Changes made to: /mnt/infra_storage/configs/plex/docker-compose.yml

environment:
  - PUID=3000 # Changed from 1000
  - PGID=3000 # Changed from 1000

Secondary Fix: File Permissions

Playback failures persisted for specific titles (e.g., "Significant Other", "The Homesman"). Investigation revealed 12 items were owned by user vivianl (UID 1000) instead of the media user (UID 3000), causing access denials even with the container fix.

Actions Taken: 1. Recursive Ownership Fix: Forced all media files to UID/GID 3000. bash sudo chown -R 3000:3000 /mnt/media/movies /mnt/media/tv 2. Prevention (SGID): Set the Set-Group-ID bit on media directories. New files created in these folders will now inherit the group 3000 automatically. bash sudo chmod g+s /mnt/media/movies /mnt/media/tv

📚 Readarr Deployment & Stack Optimization

To improve long-term organization, Readarr was added to the media hub on holodeck-subspace.

Actions Taken: 1. Readarr Setup: Integrated binhex/arch-readarr into the Docker Compose stack. 2. Standardization: Updated all media services (qbittorrent_audio, audiobookshelf, readarr) to use PUID/PGID 3000 to match NAS ACLs. 3. Stack Refresh: Transitioned the project to subspace_v2 to resolve Docker state inconsistencies. 4. Ownership Fix: Recursively updated permissions on configuration directories to 3000:3000.

Current Service Endpoints: * Audiobookshelf: http://192.168.1.11:13378 * Readarr: http://192.168.1.11:8787 * qBittorrent (Audio): http://192.168.1.11:8085