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/mediaare owned byUID=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