Server Version#: 1.43.0.10231 in docker
Player Version#: Web
Yes I have plex pass. When I first set this server up, hardware transcoding was working. Then some updates installed for the host and now I can’t get it to work for the life of me. I also have CodeProjectAI Running in docker using the same GPU just fine. nvidia-smi inside the container sees the GPU just fine. Here are the errors in the debug logs since I can’t figure out how to attach them:
Nov 04, 2025 08:49:37.756 [140012314766136] DEBUG - [Req#220/Transcode] Codecs: testing hevc (decoder) with hwdevice nvdec
Nov 04, 2025 08:49:37.756 [140012314766136] DEBUG - [Req#220/Transcode] Codecs: hardware transcoding: testing API nvdec for device ‘pci:0000:06:10.0’ (NVIDIA GA102 [GeForce RTX 3090])
Nov 04, 2025 08:49:37.756 [140012314766136] ERROR - [Req#220/Transcode] [FFMPEG] - Cannot load libcuda.so.1
Nov 04, 2025 08:49:37.756 [140012314766136] ERROR - [Req#220/Transcode] [FFMPEG] - Could not dynamically load CUDA
Nov 04, 2025 08:49:37.756 [140012314766136] DEBUG - [Req#220/Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Operation not permitted
Nov 04, 2025 08:49:37.756 [140012314766136] DEBUG - [Req#220/Transcode] Could not create hardware context for hevc
Here is my docker command to run the container:
-bash-5.3# cat runPlex.sh
docker run
-d
-–name plex
-p 32400:32400/tcp
-p 3005:3005/tcp
-p 8324:8324/tcp
-p 32469:32469/tcp
-p 1900:1900/udp
-p 32410:32410/udp
-p 32412:32412/udp
-p 32413:32413/udp
-p 32414:32414/udp
-e TZ=“America/New_York”
-e ADVERTISE_IP=“http://192.168.1.23:32400/”
-h plex
-v /var/docker/volumes/plex/config:/config
-v /var/docker/volumes/plex/transcode:/transcode
-v /mnt/media:/data
-–restart=always
-–runtime=nvidia
-e NVIDIA_VISIBLE_DEVICES=“all”
-e NVIDIA_DRIVER_CAPABILITIES=“all”
-–device /dev/dri:/dev/dri
plexinc/pms-docker:beta
nvidia-smi on the host:
-bash-5.3# nvidia-smi
Tue Nov 4 09:07:04 2025
±----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.95.05 Driver Version: 580.95.05 CUDA Version: 13.0 |
±----------------------------------------±-----------------------±---------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 3090 Off | 00000000:06:10.0 Off | N/A |
| 0% 48C P2 106W / 350W | 2113MiB / 24576MiB | 0% Default |
| | | N/A |
±----------------------------------------±-----------------------±---------------------+
±----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 2912 C python3.8 1202MiB |
| 0 N/A N/A 2969 C python3.8 896MiB |
±----------------------------------------------------------------------------------------+
One more thing I wanted to add, Plex definitely sees the GPU because I can select it on the transcode tab of settings under “Hardware transcode device”
Menel
November 4, 2025, 4:42pm
3
Check permissions, puid and guid, of user you want and of the render
I am not exactly sure what you are asking me to check. I just noticed that PMS is not running at the user I thought it was on the host. I added that user to the render group and restarted the container. No luck. I even tried adding the –privileged flag to my docker run command and still no luck.
Here is a ps from the host:
-bash-5.3# ps -aux | grep -i plex
root 16907 0.0 0.0 212 56 ? S 12:54 0:00 s6-supervise plex
jq 16910 15.6 0.4 283608 78720 ? Ssl 12:54 0:05 /usr/lib/plexmediaserver/Plex Media Server
jq 16982 2.0 0.2 65420 44580 ? SNl 12:55 0:00 Plex Plug-in [com.plexapp.system] /usr/lib/plexmediaserver/Resources/Plug-ins-ca3956848/Framework.bundle/Contents/Resources/Versions/2/Python/bootstrap.py --server-version 1.43.0.10231-ca3956848 /usr/lib/plexmediaserver/Resources/Plug-ins-ca3956848/System.bundle
jq 17057 0.0 0.0 43944 13424 ? Sl 12:55 0:00 /usr/lib/plexmediaserver/Plex Tuner Service /usr/lib/plexmediaserver/Resources/Tuner/Private /usr/lib/plexmediaserver/Resources/Tuner/Shared 1.43.0.10231-ca3956848 32600
jq 17089 1.6 0.2 64644 44244 ? Sl 12:55 0:00 Plex Plug-in [com.plexapp.agents.imdb] /usr/lib/plexmediaserver/Resources/Plug-ins-ca3956848/Framework.bundle/Contents/Resources/Versions/2/Python/bootstrap.py --server-version 1.43.0.10231-ca3956848 /usr/lib/plexmediaserver/Resources/Plug-ins-ca3956848/PlexMovie.bundle
root 17377 0.0 0.0 6624 4216 pts/1 S+ 12:55 0:00 grep -i plex
And here are the user it is running as, as well as the user I thought I was running it as:
-bash-5.3# id jq
uid=1000(jq) gid=1000(jq) groups=1000(jq),3(sys),90(network),998(wheel),996(audio),991(lp),989(render),987(storage),985(video),984(users),981(rfkill),965(docker)
-bash-5.3# id plex
uid=1017(plex) gid=1017(plex) groups=1017(plex),989(render),985(video)
And here is my current plex command:
-bash-5.3# cat runPlex.sh
docker run
-d
-–name plex
-–privileged
-e PUID=1017
-e PGID=1017
-p 32400:32400/tcp
-p 3005:3005/tcp
-p 8324:8324/tcp
-p 32469:32469/tcp
-p 1900:1900/udp
-p 32410:32410/udp
-p 32412:32412/udp
-p 32413:32413/udp
-p 32414:32414/udp
-e TZ=“America/New_York”
-e ADVERTISE_IP=“``http://192.168.1.23:32400/”``
-h plex
-v /var/docker/volumes/plex/config:/config
-v /var/docker/volumes/plex/transcode:/transcode
-v /mnt/media:/data
-–restart=always
-–runtime=nvidia
-–gpus all
-e NVIDIA_VISIBLE_DEVICES=“all”
-e NVIDIA_DRIVER_CAPABILITIES=“all”
-–device /dev/dri:/dev/dri
plexinc/pms-docker:beta
I have found some other threads about this. Seems like nvidia and docker are putting the file somewhere Plex doesn’t look for it.
This is from inside the container:
root@plex:/usr/lib/plexmediaserver/lib# ls -l
total 85848
-rwxr-xr-x 1 root root 747264 Oct 9 06:03 ld-musl-x86_64.so.1
-rwxr-xr-x 1 root root 6121544 Oct 9 06:03 libavcodec.so.60
-rwxr-xr-x 1 root root 6927632 Oct 9 06:03 libavfilter.so.9
-rwxr-xr-x 1 root root 3220672 Oct 9 06:03 libavformat.so.60
-rwxr-xr-x 1 root root 1037112 Oct 9 06:03 libavutil.so.58
-rwxr-xr-x 1 root root 10616 Oct 9 06:03 libboost_atomic.so
-rwxr-xr-x 1 root root 33056 Oct 9 06:03 libboost_chrono.so
-rwxr-xr-x 1 root root 4760 Oct 9 06:03 libboost_date_time.so
-rwxr-xr-x 1 root root 130968 Oct 9 06:03 libboost_filesystem.so
-rwxr-xr-x 1 root root 196256 Oct 9 06:03 libboost_iostreams.so
-rwxr-xr-x 1 root root 265608 Oct 9 06:03 libboost_json.so
-rwxr-xr-x 1 root root 470008 Oct 9 06:03 libboost_locale.so
-rwxr-xr-x 1 root root 323024 Oct 9 06:03 libboost_program_options.so
-rwxr-xr-x 1 root root 26880 Oct 9 06:03 libboost_random.so
-rwxr-xr-x 1 root root 195288 Oct 9 06:03 libboost_regex.so
-rwxr-xr-x 1 root root 4728 Oct 9 06:03 libboost_system.so
-rwxr-xr-x 1 root root 113248 Oct 9 06:03 libboost_thread.so
-rwxr-xr-x 1 root root 30800 Oct 9 06:03 libboost_timer.so
-rw-r–r-- 1 root root 1152880 Oct 9 06:03 libc++.so.2
-rwxr-xr-x 1 root root 747264 Oct 9 06:03 libc.so
-rwxr-xr-x 1 root root 5096 Oct 9 06:03 libcharset.so.1
-rwxr-xr-x 1 root root 4990824 Oct 9 06:03 libcrypto.so.3
-rwxr-xr-x 1 root root 519808 Oct 9 06:03 libcurl.so.4
-rwxr-xr-x 1 root root 84624 Oct 9 06:03 libdrm.so.2
-rwxr-xr-x 1 root root 41568 Oct 9 06:03 libdrm_amdgpu.so.1
-rwxr-xr-x 1 root root 135288 Oct 9 06:03 libdrm_intel.so.1
-rwxr-xr-x 1 root root 39312 Oct 9 06:03 libdrm_radeon.so.1
-rwxr-xr-x 1 root root 39368 Oct 9 06:03 libeditline.so.1
-rw-r–r-- 1 root root 94064 Oct 9 06:03 libfmt.so.8
-rwxr-xr-x 1 root root 5431224 Oct 9 06:03 libfreeimage.so
-rwxr-xr-x 1 root root 58688 Oct 9 06:03 libgcompat.so.0
-rwxr-xr-x 1 root root 88368 Oct 9 06:03 libhdhomerun.so
-rwxr-xr-x 1 root root 918856 Oct 9 06:03 libiconv.so.2
-rwxr-xr-x 1 root root 11037448 Oct 9 06:03 libicudataplex.so.69
-rwxr-xr-x 1 root root 3670024 Oct 9 06:03 libicui18nplex.so.69
-rwxr-xr-x 1 root root 59968 Oct 9 06:03 libicuioplex.so.69
-rwxr-xr-x 1 root root 2110136 Oct 9 06:03 libicuucplex.so.69
-rw-r–r-- 1 root root 668744 Oct 9 06:03 libigdgmm.so.12
-rwxr-xr-x 1 root root 57624 Oct 9 06:03 libminiupnpc.so.17
-rw-r–r-- 1 root root 149256 Oct 9 06:03 libnghttp2.so
-rwxr-xr-x 1 root root 14941184 Oct 9 06:03 libonnxruntime.so.1.16.3
-rwxr-xr-x 1 root root 2588152 Oct 9 06:03 libopencv_core.so.405
-rwxr-xr-x 1 root root 3263192 Oct 9 06:03 libopencv_dnn.so.405
-rwxr-xr-x 1 root root 915048 Oct 9 06:03 libopencv_imgcodecs.so.405
-rwxr-xr-x 1 root root 3789064 Oct 9 06:03 libopencv_imgproc.so.405
-rwxr-xr-x 1 root root 37000 Oct 9 06:03 libpciaccess.so.0
-rw-r–r-- 1 root root 1218440 Oct 9 06:03 libpion.so
-rwxr-xr-x 1 root root 4598688 Oct 9 06:03 libpython27.so
-rwxr-xr-x 1 root root 223560 Oct 9 06:03 libsoci_core.so
-rwxr-xr-x 1 root root 87976 Oct 9 06:03 libsoci_sqlite3.so
-rwxr-xr-x 1 root root 982016 Oct 9 06:03 libsqlite3.so
-rwxr-xr-x 1 root root 642008 Oct 9 06:03 libssl.so.3
-rwxr-xr-x 1 root root 149912 Oct 9 06:03 libswresample.so.4
-rwxr-xr-x 1 root root 949344 Oct 9 06:03 libswscale.so.7
-rwxr-xr-x 1 root root 1157360 Oct 9 06:03 libtag.so.1
-rwxr-xr-x 1 root root 87488 Oct 9 06:03 libusb-1.0.so.0
-rwxr-xr-x 1 root root 9328 Oct 9 06:03 libva-drm.so.2
-rwxr-xr-x 1 root root 172968 Oct 9 06:03 libva.so.2
-rw-r–r-- 1 root root 920 Oct 9 07:11 plexmediaserver.default
-rwxr-xr-x 1 root root 6669 Oct 9 07:11 plexmediaserver.init
-rw-r–r-- 1 root root 1664 Oct 9 07:11 plexmediaserver.service
root@plex:/usr/lib/plexmediaserver/lib# find / -name libcuda.so.1
/usr/lib/libcuda.so.1
I can confirm the fix listed here [BUG] cuda broken - Cannot load libcuda.so.1 · Issue #403 · linuxserver/docker-plex · GitHub
for i in /usr/lib/lib*.so.1;
do ln -s $i /usr/lib/plexmediaserver/lib/;
done
does resolve the issue.
Is there any way to report a bug?
Am I doing something wrong here or are there plans to fix this?
I have the exact same issue, also exact same solution fixed it. I run my docker container as a specific user so from the sounds of it that might be part of the problem as well?