"Cannot load libcuda.so.1" unable to do HW transcoding

Environment

  • Plex Media Server: 1.43.2.10687

  • Also tested: 1.43.1.10611 and 1.42.2.10156

  • Image tested:

    • linuxserver/plex
    • plexinc/pms-docker
  • Host OS: Debian Trixie

  • Docker: Docker Compose

  • GPU: NVIDIA RTX 3060

  • Driver: 550.163.01

  • CUDA: 12.4

  • NVIDIA Container Toolkit: 1.19.1

  • Plex Pass: Lifetime

    Every transcode attempt produces:

    Cannot load libcuda.so.1
    Could not dynamically load CUDA
    opening hw device failed - Operation not permitted
    Could not create hardware context
    

    Plex then falls back to software transcoding.

Inside the running Plex container:

libcuda.so.1 exists
ldconfig -p | grep libcuda

libcuda.so.1 => /usr/lib/x86_64-linux-gnu/nvidia/current/libcuda.so.1

Plex Transcoder reports:

Hardware acceleration methods:

cuda
vaapi
drm
opencl

and

h264_nvenc
hevc_nvenc

are listed as available encoders.

I installed Jellyfin on the same Docker host, using:

  • same NVIDIA runtime
  • same RTX 3060
  • same Docker
  • same NFS media mount

Jellyfin successfully starts GPU transcoding.

I’m getting the feeling I’m missing something elementary, but I’m buggered If I know what it is.
Works for Jellyfin just fine, but Plex just refuses to use the same hardware on the same docker host.

something specific to debian trixie ffmpeg and the supported nvidia driver for DT.

Rebuild the VM as ubuntu with the exact same hardware and config and it just works immediately