Hardware/GPU/Quicksync transcoding broken on Beta 1.43.1.10540

Server Version#: 1.43.1.10540
Player Version#:

After updating to the last beta version, version 1.43.1.10540 , GPU (hardware) transcoding no longer worked for me.

I am on unraid, running Hotio docker container running on a Intel® Core™ Ultra 7 265K with build in IGPU with quicksync. When I rollback to the last stable version, everything works fine.

I enabled debug and trace logs, and found this entry:

[Req#5a3d58/Transcode/8da8b6f6-eb8d-4ef3-92e9-bf370e3e7e63] TPU: hardware transcoding: enabled, but no hardware decode accelerator found
Mar 15, 2026 23:02:53.658 [23439240571704] DEBUG - Request: [80.60.94.213:42380 (WAN)] GET /video/:/transcode/universal/session/8da8b6f6-eb8d-4ef3-92e9-bf370e3e7e63/base/index.m3u8 (52 live) #5a3d58 TLS GZIP Signed-in / Accept-Encoding => gzip / Connection => Keep-Alive / Host => XXXXXXXXX / User-Agent => Mozilla/5.0 (Linux; Android 16; CPH2645 Build/UKQ1.231108.001; wv)PlexMobile/2026.4.0
Mar 15, 2026 23:02:53.658 [23439240571704] DEBUG - [Req#5a3d58/Transcode/8da8b6f6-eb8d-4ef3-92e9-bf370e3e7e63] Starting a transcode session 8da8b6f6-eb8d-4ef3-92e9-bf370e3e7e63 at offset -1.0 (state=3)
Mar 15, 2026 23:02:53.659 [23439240571704] DEBUG - [Req#5a3d58/Transcode/8da8b6f6-eb8d-4ef3-92e9-bf370e3e7e63] TPU: hardware transcoding: enabled, but no hardware decode accelerator found
Mar 15, 2026 23:02:53.660 [23439240571704] DEBUG - [Req#5a3d58/Transcode/8da8b6f6-eb8d-4ef3-92e9-bf370e3e7e63] [Universal] Using local file path instead of URL: /data/media/tv/XXXXXXXXX.mkv
Mar 15, 2026 23:02:53.660 [23439240571704] DEBUG - [Req#5a3d58/Transcode/8da8b6f6-eb8d-4ef3-92e9-bf370e3e7e63] TPU: hardware transcoding: final decoder: , final encoder:
Mar 15, 2026 23:02:53.660 [23439240571704] VERBOSE - [Req#5a3d58/Transcode/8da8b6f6-eb8d-4ef3-92e9-bf370e3e7e63] Sufficient disk space: 255.86kB source file, 579.83GB capacity, 273.38GB available on “/transcode/Transcode/Sessions”
Mar 15, 2026 23:02:53.661 [23439240571704] DEBUG - [Req#5a3d58/Transcode/8da8b6f6-eb8d-4ef3-92e9-bf370e3e7e63/JobRunner] Job running: EAE_ROOT=/config/Temp/pms-0cebd923-f624-4c75-b559-2aafbdffcaaa/EasyAudioEncoder FFMPEG_EXTERNAL_LIBS=‘/app/config/Plex\ Media\ Server/Codecs/780ede2-0b0ee1264a9bc260e67e1b1b-linux-x86_64/’ X_PLEX_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx “/app/bin/usr/lib/plexmediaserver/Plex Transcoder” -codec:0 hevc -codec:1 eac3_eae -eae_prefix:1 8da8b6f6-eb8d-4ef3-92e9-bf370e3e7e63_ -analyzeduration 20000000 -probesize 20000000 -i “/data/media/tv/XXXXXX.mkv” -start_at_zero -copyts -fps_mode cfr -y -nostats -loglevel quiet -loglevel_plex error -progressurl http://127.0.0.1:32400/video/:/transcode/session/8da8b6f6-eb8d-4ef3-92e9-bf370e3e7e63/64a3d654-313d-4de1-8a16-820e0c64fef4/progress -filter_complex “[0:0]scale=w=1280:h=720:force_divisible_by=4[0];[0]format=p010,tonemap=mobius[1];[1]format=pix_fmts=yuv420p|nv12[2]” -map “[2]” -metadata:s:0 language=eng -codec:0 libx264 -crf:0 23 -maxrate:0 3157k -bufsize:0 6314k -r:0 24 -preset:0 veryfast -x264opts:0 subme=1:me_range=4:rc_lookahead=10:me=hex:8x8dct=0:partitions=none -force_key_frames:0 “expr:gte(t,n_forced*3)” -filter_complex “[0:1] aresample=async=1:ochl=‘5.1’:rematrix_maxval=0.000000dB:osr=48000[3]” -map “[3]” -metadata:s:1 language=eng -codec:1 libopus -b:1 336k -map 0:27 -metadata:s:2 language=nld -codec:2 copy -strict_ts:2 0 -segment_format matroska -f ssegment -individual_header_trailer 0 -flags +global_header -segment_header_filename header -segment_time 3 -segment_start_number 0 -segment_time_delta 0.0625 -segment_list “http://127.0.0.1:32400/video/:/transcode/session/8da8b6f6-eb8d-4ef3-92e9-bf370e3e7e63/64a3d654-313d-4de1-8a16-820e0c64fef4/manifest?X-Plex-Http-Pipeline=infinite” -segment_list_type csv -segment_list_size 5 -segment_list_separate_stream_times 1 -segment_list_unfinished 1 -segment_format_options output_ts_offset=10 -max_delay 5000000 -avoid_negative_ts disabled -map_metadata -1 -map_chapters -1 “media-%05d.ts”
Mar 15, 2026 23:02:53.661 [23439240571704] DEBUG - [Req#5a3d58/Transcode/8da8b6f6-eb8d-4ef3-92e9-bf370e3e7e63/JobRunner] In directory: “/transcode/Transcode/Sessions/plex-transcode-8da8b6f6-eb8d-4ef3-92e9-bf370e3e7e63-64a3d654-313d-4de1-8a16-820e0c64fef4”
Mar 15, 2026 23:02:53.661 [23439240571704] DEBUG - [Req#5a3d58/Transcode/8da8b6f6-eb8d-4ef3-92e9-bf370e3e7e63/JobRunner] Jobs: Starting child process with pid 98582
Mar 15, 2026 23:02:53.667 [23439759956792] VERBOSE - Didn’t receive a request from 172.18.0.17:41964: End of file




1 Like

Can confirm the same issue.

OS: Unraid
Plex Beta 1.43.1.10540 (linuxserver.io container)
Core Ultra 7 265K

The server uses the CPU to transcode and does not utilize quicksync. Rolling back to 1.43.0.10492 restores quicksync functionality.

1 Like

@PB-Plex @FDM80 thanks for reporting. I’m looking into it.

1 Like

@PB-Plex @FDM80 Can you both try the official Plex container? Can you also share your docker config/compose? Just wanting to start with the easy stuff first.

do you happen to have nvidia gpu forwarding configured as well as intel? I have seen reports that the two now conflict.

1 Like

Just tried the official plex container. Same behavior as the linuxserver.io one.

Here is a screenshot of the container template.

1 Like

For my case, I don’t have an nvidia gpu in my system so I have no reason to configure any settings related to one of those gpus.

As requested:

2 Likes

I’m on 1.43.1 (10540) as well and don’t see iGPU usage anymore on my i5-1145G7 NUC during transcoding (via intel_gpu_top). Colors are washed out despite tonemapping in settings. I do use a bare metal install on Ubuntu 25.10 however.

Running Plex Media Server (1.43.1.10540, via plexinc/pms-docker:beta) on Docker with an Intel Core Ultra 7 255H (Arrow Lake-P, Xe2/Battlemage integrated graphics). PlexPass hardware transcoding is enabled and the correct GPU is selected in Settings → Transcoder. The /dev/dri device is passed through to the container and permissions are correct.

Plex detects the device (8086:7d51, Arrow Lake-P [Intel Graphics]) but fails to initialize VAAPI:

TPU: hardware transcoding: enabled, but no hardware decode accelerator found
TPU: hardware transcoding: final decoder: , final encoder:

The host system’s VAAPI stack works correctly — vainfo with LIBVA_DRIVER_NAME=iHD reports full H.264 and HEVC encode/decode support via intel-media-va-driver-non-free 25.2.4. The issue appears to be that Plex’s bundled libva cannot load the system iHD driver regardless of LIBVA_DRIVER_NAME or LIBVA_DRIVERS_PATH environment variables. This may be related to the MUSL vs glibc build of Plex’s internal libraries.

Related thread: Battlemage support - is there a fix or workaround for Xe2/Arrow Lake specifically?

Update: I also tested rolling back to 1.43.0.10492 following reports that 1.43.1.10540 introduced a QuickSync regression. The rollback did not resolve the issue for me - the same “no hardware decode accelerator found” error seems to persist on 1.43.0. This suggests Arrow Lake iGPU users may be dealing with two separate problems: the 1.43.1 regression affecting previously-working Intel hardware, and a pre-existing VAAPI incompatibility with Xe2/Battlemage that exists across all Plex versions. The rollback which fixes older Intel generations does not apply here.

Running Plex Media Server (1.43.1.10540, via plexinc/pms-docker:beta) on Docker with an Intel Core Ultra 7 255H (Arrow Lake-P, Xe2/Battlemage integrated graphics). PlexPass hardware transcoding is enabled and the correct GPU is selected in Settings → Transcoder. The /dev/dri device is passed through to the container and permissions are correct.

Plex detects the device (8086:7d51, Arrow Lake-P [Intel Graphics]) but fails to initialize VAAPI:

TPU: hardware transcoding: enabled, but no hardware decode accelerator found
TPU: hardware transcoding: final decoder: , final encoder:

The host system’s VAAPI stack works correctly — vainfo with LIBVA_DRIVER_NAME=iHD reports full H.264 and HEVC encode/decode support via intel-media-va-driver-non-free 25.2.4. The issue appears to be that Plex’s bundled libva cannot load the system iHD driver regardless of LIBVA_DRIVER_NAME or LIBVA_DRIVERS_PATH environment variables. This may be related to the MUSL vs glibc build of Plex’s internal libraries.

Related thread: Battlemage support - is there a fix or workaround for Xe2/Arrow Lake specifically?

Update: I also tested rolling back to 1.43.0.10492 following reports that 1.43.1.10540 introduced a QuickSync regression. The rollback did not resolve the issue for me - the same “no hardware decode accelerator found” error seems to persist on 1.43.0. This suggests Arrow Lake iGPU users may be dealing with two separate problems: the 1.43.1 regression affecting previously-working Intel hardware, and a pre-existing VAAPI incompatibility with Xe2/Battlemage that exists across all Plex versions. The rollback which fixes older Intel generations does not apply here.

Could you share your preferences.xml file to me via DM (file contains your email address and token information).

Another user had a similar issue though with differing HW and setup, I wonder if the same “fix” could help here.

Plex really needs to update their bundled drivers. They are all severely out of date so newer systems are having problems getting GPU acceleration to work.

Plex Media Server 1.43.1.10540 includes the updated transcoder; it is based on Intel Media Driver 25.2.6 which supports Arrow Lake-based processors (actually, up through Panther Lake).

3 Likes

I’ve DMed Preferences.xml. Thanks for having a look.

Unfortunately, 1.43.1.10540 does not fully solve the problem for my setup.

It was suggested in another post that “severely” outdated drivers were being used. I just wanted to ensure that it was understood that the drivers used in the current beta do indeed support this hardware. So there’s likely something else going on here. Sorry for the added noise.

The keys that I had to remove from the Preferences.xml are as follows:

VaapiDriver="ihd"
HardwareDevicePath=""
HardwareAcceleratedEncoders="1"
TranscoderQuality="0"
TranscoderH264BackgroundPreset="veryfast"
TranscoderToneMapping="0"
TranscoderCanOnlyRemuxVideo="0"
TranscoderHEVCEncodingMode="never"
TranscoderHEVCOptimize="0"
TranscoderThrottleBuffer="180"
TranscodeCountLimit="2"
OptimizerTranscodeCountLimit="1"

And the following as well

_CPU-TranscodeCountLimit="2"
_80865a858086727000000002.0-TranscodeCountLimit="2"
_80864e558086221200000002.0-TranscodeCountLimit="2"
_100216381002012300000400.0-TranscodeCountLimit="4"
_808646d28086727000000002.0-TranscodeCountLimit="3"

In my case, each of these _#### values has to do with a different install, as I have migrated my Plex library many times over the years, and I do all the work to update the paths. I went from Windows hosted, to Fedora Linux hosted, to AMD powered MacOS hosted, to Synology NAS, then AMD powered Ubuntu Server, then Intel powered Ubuntu Server. As some point in the history, it became less of an arbitrary task, and this time, I had to do this cleanup.

  1. Stop plex
  2. clean up all the _### entries, like I did – they aren’t needed in this case.
  3. clean up all the entries shown in the first section (if you are unsure, you can copy / paste the entries into ChatGPT and ask it, what entries should be removed to reset GPU options for plex media server. that’s how I got the list, and fixed this.
  4. delete the Cache, Drivers, Codecs folders from the plex configuration folders
  5. start plex

on Ubuntu, the plex config folder is located in /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server

Not part of the fix, but I also remove all video drivers, since I am running on a headless linux server. And because plex sources its own libraries, this works.

Hey, thanks for responding. My preferences.xml didn’t have some of the entries that yours did (notably per Atomatth, VaapiDriver=“ihd”), but I removed everything I had that looked similar. I purged the folders that you listed (contents not the folders themselves), and after a container stop, rm, rebuild, I still don’t get hw transcoding. The only other thing that differs is that I do have the intel video drivers installed on the host, which I guess aren’t necessary (also headless) but I don’t think they interfere.

Would you mind sharing the salient portions of your rebuilt preferences.xml? Anything sensitive redacted, of course.