Hardware Transcoding not working on ubuntu server 18.04

I would venture to guess that your dri render renderD128 is associated to card1 and not card0 and it look like Plex is only looking for /dev/dri/card0 with /dev/dri/renderD128.

You can confirm it via lsgpu(pci domain.bus.slot.func will be different):

sys:/sys/devices/pci0000:00/0000:00:04.0
    subsystem       : pci
    drm card        : /dev/dri/card1
    drm render      : /dev/dri/renderD128

or via ls -lah /dev/dri/by-path/

pci-0000:00:04.0-card -> ../card1
pci-0000:00:04.0-render -> ../renderD128
pci-0000:02:00.0-card -> ../card0

I’m currently facing the same issue with a system with a BMC with an integrated graphic card.

I couldn’t find a way to specify the dri card and render path to use in Plex. Nor there is any mention of dri configuration in the Advanced, Hidden Server Settings document.

As a workaround you can setup a docker instance that will remap card1 to card0 and pass through renderD128 via the devices option.

There’s a feature suggestions to enable custom dri path, but it date from 2018:
https://forums.plex.tv/t/requesting-option-to-select-dri-hardware-decoding-device/231808