PMS cannot transcode any file ("Conversion failed. The transcoder crashed or failed to start up")

  • OS version: OpenMediaVault 4.1.0-1 (Arrakis)
  • Plex Media Server version: PMS 1.11.3.4803
  • Docker version: Docker 17.12.1-ce
  • Docker container: plex-inc/pms-docker:latest

Direct play works as expected, but anything needing any transcode (video or audio) fails without even starting the job.

Things I have tried:

  • Recreate the docker container by deleting the image and repulling the pms-docker image
  • Recheck folder permissions of /config and /transcode paths
  • Manually delete the cache and /transcode folder (and watch that PMS is able to recreate it)
  • Delete all libraries and recreate them

I have checked that PMS is able to recreate the /transcode and session folders even after manually deleting them, but it does not place any file in it.
I gave system user “plex” -rw permissions on the docker plex folder and all the subfolders and -r permission on the media folders, and added it when building the container (PLEX_UID 114, PLEX_GID 118).
I have also tried to assign root user when building the container again (PLEX_UID 0, PLEX_GID 0).
My plex docker path is located at a cache SSD with enough space left (+100GiB):
/srv/dev-disk-by-label-cache/docker/plex
/srv/dev-disk-by-label-cache/docker/plex/config
/srv/dev-disk-by-label-cache/docker/plex/transcode
The server has transcoding capabilities (Intel Xeon E3-1230v5 + 32GB DDR4 ECC)

I have recreated the error to get additional information from the logs, by following the steps:

  • Stopped the container
  • Deleted the logs
  • Started the container
  • Activated the debug option
  • Asked for a file that needs to be transcoded from the android app
  • Waited for the transcoding error to get reproduced
  • Waited 15 secs
  • Grabbed the attached logs

The most informative lines with the error are:
Mar 05, 2018 11:52:35.398 [0x7f8bc03ff700] **ERROR - JobManager: child process returned: 1 (Operation not permitted)**
Mar 05, 2018 11:52:35.398 [0x7f8bc03ff700] **DEBUG - Jobs: '/usr/lib/plexmediaserver/Plex Transcoder' exit code for process 360 is 1**

If there is anything more I could provide, just ask for it.

Thanks in advance.

Same OS, same docker config, same tests… I’ve had this issue since building the machine a few weeks ago. I get “exit code for process 362 is 1” in the logs instead of 360 but I sure hope someone here can help the both of us !

@“M@lice” said:
Same OS, same docker config, same tests… I’ve had this issue since building the machine a few weeks ago. I get “exit code for process 362 is 1” in the logs instead of 360 but I sure hope someone here can help the both of us !

At least I am not alone :smiley:

In order to provide further details, transcoding worked nice when running Plex as a plugin via omvextras.org (using Plex user and Plex group), but not as docker container. So it seems that OS might not be the problem.

I highly suspect that it has something to do with permissions, as if I manually delete the /transcode folder, I watch it recreate the transcode path with the session folder included for the current transcoding task but it leaves it empty and it does not trigger the transcoding process or write any file in it.

But curiosly enough, the /config folder gets written every minute.

And I have tried to give the container user root permissions, and still nothing gets written in the session folder for each transcode I ask for. Also rechecked Plex docker user permissions (-rw on the root folder of the container and all its subdirectories).

If any other log or test is needed, just ask for it.

Thank you in advance.

Finally got it!

The problem is that I had disabled the exec permissions on the drive I have the docker container running, and therefore the transcoder.exe could not execute itself.

I realized because as a OpenMediaVault plugin, transcoding worked as it run from the OS drive, which has exec permissions. But as a docker, as I have it running from the cache drive with the noexec flag, it could not even start.

So the solution was:

  • unmount the cache drive (umount /dev/sdx1)
  • edit the fstab file (nano /etc/fstab)
  • swap the “noexec” flag with the “exec” one
  • save and exit
  • remount the cache drive (mount /dev/sdx1)
  • reboot OpenMediaVault/restart container

Now transcoding works in every system (android client, plex media player, smarttv…).

3 Likes

Also did it for me !
Thank you so much ! No I can ~~hurt ~~use my CPU !

The problem with making manual edits to /etc/fstab in OMV is that they are not permanent.

Your change will be lost the next time you add/remove a disk or create a filesystem because /etc/fstab will be rewritten and “exec” is not the default option, “noexec” is.

What you should do is make the change in /etc/default/openmediavault on the line that begins with:

OMV_FSTAB_MNTOPS_EXT4=

save the file and then as root run:

omv-mkconf fstab

2 Likes

Big thanks this has brought streaming back to my pi after i started using docker :slight_smile:

I’m running Plex Media Server form Docker on a Odroid HC1, and I have the same problem.
Anybody could help me with some simple instruction to solve it please?

I tried to unmount the cache drive (umount /dev/sdx1)… but there’s no /dev/sdx1 mounted.
I also tried to edit /etc/default/openmediavault but there’s no “OMV_FSTAB_MNTOPS_EXT4=” to edit there.

I solved following Techno Dad Life tutorial:

5 Likes

Oh man, I’m glad I found this. I couldn’t figure out why my docker plex wasn’t transcoding… this did it. I even tried putting my /transcode on the main drive (since its ssd) and that wouldn’t do it as well.

Thanks!

1 Like

oh god, thanks to you and Techno Dad Life!! I’m able now to watch movies/tv shows with plex <3

1 Like

This video from Techno dad fixed my transcoding problem as well. Awesome!!!

1 Like

Techno Dad for the WIN!!!

Thank you!

Robert

I solved thanks!! God JOB Dad