Misleading "maximum simultaneous video transcodes" error when TranscoderCanOnlyRemuxVideo is set

Server Version#: 1.43.4.10903-e5521bd8c
Platform: Docker (plexinc/pms-docker), Debian 13 host
Player Version#: Android 2026.13.0 (also reproducible via Plex Web)
Issue:
When TranscoderCanOnlyRemuxVideo=“1” is set in Preferences.xml, and a client
requests playback that genuinely requires re-encoding (not just a container
remux — e.g. because of a client-side bandwidth cap forcing resolution/bitrate
reduction), the server refuses the transcode as expected, but reports the
wrong reason to the client:

Transcode=4010, This item cannot be played at this time. The server has

reached its configured limit for maximum simultaneous video transcodes.

This is misleading. /status/sessions showed 0 active sessions, and

Maximum simultaneous video transcode / Maximum simultaneous CPU transcodes

were both set to finite, non-zero values — there was no actual session-limit

condition. The real (correct) reason is visible only in the server debug log:

MDE: E1 - : no remuxable profile found, so video stream will be transcoded

…

Streaming Resource: Reached Decision id=… codes=(

MDE=3001, Not enough bandwidth for direct play of this item…

General=2000, Neither direct play nor conversion is available.

Direct Play=3000, App cannot direct play this item…

Transcode=4010, … maximum simultaneous video transcodes.)

The Transcode=4010 code appears to be a generic fallback used whenever the

transcode decision fails for any reason, not specifically a session-count

limit — the client (Android app, and presumably others) surfaces this generic

code’s message verbatim, which sent us down a lengthy, wrong troubleshooting

path (restarting sessions, changing transcode-count settings, disabling

hardware acceleration, etc. — none of which were the actual cause).

Suggested fix: Either give Transcode=4010 a distinct, accurate message

when the real cause is “remux-only mode + no remuxable profile available”, or

at minimum expose the actual MDE=3001 / bandwidth-exceeded reason to the

client UI instead of (or alongside) the generic transcode-limit text.

Steps to reproduce:

Set TranscoderCanOnlyRemuxVideo=“1” in Preferences.xml (restart PMS).

Play a file that direct-plays fine locally but whose bitrate exceeds a

client-side remote-bandwidth cap (e.g. Android app’s "Maximum remote

bitrate" set below the file’s bitrate), forcing the server to consider a

real re-encode rather than a remux.

Server correctly refuses (remux-only can’t downscale/re-encode), but the

client reports "reached its configured limit for maximum simultaneous

video transcodes" even though 0 sessions are active and the transcode

count limits are unrelated.

Confirmed via debug log (Plex Media Server.log) that the true decision

code is MDE=3001 (bandwidth) / General=2000, not a session-count limit.

Fix applied on our end (for anyone finding this via search): the

TranscoderCanOnlyRemuxVideo=“1” value in Preferences.xml was not something

we had knowingly set — possibly a leftover from an earlier Docker

image/config. Setting it back to “0” and restarting the container resolved

playback immediately.

I’m not familiar with that setting, but from the wording, if your device can “only” remux then by definition the number of transcodes it can process will be 0. So the reason is technically correct.

Why do you have that setting enabled? I know they’re are some nas units that can’t transcode but you shouldn’t need a setting like that on a computer.

The report is about misleading settings when that remuxer setting is set. Which I never touched. And my server sits as a docker image on my homegrown NAS. But I never touched the docker configuration manually until resolving the issue.

For what it’s worth, TranscoderCanOnlyRemuxVideo is modified by “Disable video stream transcoding” in Settings → Transcoder in the web app. Enabled == 1 and Disabled == 0.