Fix Plex Transcoder Error When Using Docker Image And OpenMediaVault

Plex's transcoder folder requires the ability to execute files. By default OpenMediaVault sets the "noexec" flag on mounted drives by default.

TL;DR: Plex's transcoder folder requires the ability to execute files. By default OpenMediaVault sets the "noexec" flag on mounted drives by default. You need to find the drive in /etc/openmediavault/config.xml and /etc/fstab and remove "noexec" for the drive where the plex transcode folder is. Restart server. If error persists you need to check your folder permissions (make sure user running Plex process has permissions for transcode folder).

Setup And Symptoms:

  • Plex Docker image running using Open Media Vault Docker Plugin (plex/pms-docker)
  • Debian 9 (Stretch) running OpenMediaVault 4 (Arrakis)
  • Plex docker image transcode folder located on an OpenMediaVault mounted drive.
  • Attempting to play videos through Plex that require transcoding fail with "Conversion failed. The transcoder exited due to an error".

Solution

Plex's transcode folder requires the ability to execute files. By default OpenMediaVault sets the "noexec" flag on mounted drives by default. This flag prevents files from being executed on a mounted drive. To fix this issue, this flag must be removed from multiple files.

Fix

This fix requires editing two files. We need to remove "noexec" flag from the drive where the transcoder folder is.

You will need permissions to edit the files (sudoer or root). This guide assumes your system is headless, to begin you will need to open a terminal and ssh into your server.

Asumming your /transcode directory is located at /srv/dev-by-disk-example/transcode

Edit "/etc/openmediavault/config.xml"

nano /etc/openmediavault/config.xml

You need to find the section that configures how our drive is mounted. Search for "/srv/dev-by-disk-example". You should find a section like this:

<mntent>
    <uuid>fc8de059-4b27-454b-9824-6e5f80babf38</uuid>
    <fsname>/dev/disk/by-label/example</fsname>
    <dir>/srv/dev-disk-by-label-example</dir>
    <type>ext4</type>
    <opts>defaults,nofail,user_xattr,noexec,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,acl</opts>
    <freq>0</freq>
    <passno>2</passno>
    <hidden>0</hidden>
</mntent>

uuid and fsname should match the drive where your transcode directory is located.

We need to edit the opts line:

<opts>defaults,nofail,user_xattr,noexec,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,acl</opts>

Remove "noexec":

<opts>defaults,nofail,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,acl</opts>

Save (Control + X) and Exit (Y, Enter)

Edit "/etc/fstab"

nano /etc/fstab

We need to edit the line pertaining to our drive to remove "noexec" again:

/dev/disk/by-label/example /srv/dev-disk-by-label-example ext4 defaults,nofail,user_xattr,noexec,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,acl 0 2

Save (Control + X) and Exit (Y, Enter)

Restart Server:

shutdown -r -t 0

Once server restarts, plex transcode should work now. If it doesn't, you didn't edit the files correctly (remove extraneous commas!), you have permission errors (plex transcode cannot read and write to its directory) or some other unknown issue.

Back To Top