Back to Article List

Jellyfin: Fix "playback failed due to a fatal player error"

Jellyfin: Fix

"Playback failed due to a fatal player error" is Jellyfin's least helpful message, because it reports where the failure surfaced (the player) rather than where it happened (almost always the server's transcoding pipeline).

The same three lines of log reading solve it whichever variant you're seeing, including the plain "won't play media" version. Here's the diagnosis order I use, which finds the culprit in minutes instead of the shotgun-settings evening the forums recommend.

First, split the problem in half

Try the same file in a different client: if the TV app throws the error, test in a desktop browser at your server's address. Two outcomes, two roads.

Plays in the browser, fails on the device: client-side. The device app is outdated, its decoder rejects the format or its settings force something unsupported. Update the app, and in its playback settings try turning off "prefer direct play over compatibility" style options. Fire TV and older smart TVs fail here far more than servers do.

Fails everywhere: server-side, continue below. This is the common case, and it means the transcoder is being asked to convert the file and dying in the attempt.

Read the transcode log (it names the killer)

Dashboard » Logs, and open the newest file starting with FFmpeg.Transcode- from around the failed attempt. Scroll to the bottom; ffmpeg states its reason for dying in the last lines. The frequent flyers:

  • "No space left on device". The transcode directory filled up. Transcoding writes big temporary files, and a nearly-full disk kills every transcoded play while direct plays still work, which is exactly the confusing symptom pattern people report. Clear space or move the transcode path (Dashboard » Playback » Transcoding) to a bigger volume.
  • Errors mentioning vaapi, cuda, nvenc or qsv. Hardware acceleration is configured for hardware the server doesn't have or can't reach. One-minute test: set Hardware acceleration to None on the Transcoding page and replay. If it works, your acceleration config was the whole problem; either leave software transcoding on (fine on a strong CPU) or set the acceleration type up properly for your actual GPU. On a VPS this matters double, since standard instances have no GPU at all: acceleration settings copied from a desktop guide guarantee this error. CPU transcoding on a few dedicated cores handles 1080p fine; heavy parallel 4K work is what GPU VPS tiers exist for.
  • "Permission denied" on the media file. The jellyfin user can read the library index but not this particular file, typical after moving files in as root. chown/chmod the new arrivals and rescan.
  • Subtitle lines right before death. Burning in image-based subtitles (PGS from Blu-ray rips especially) is a notorious transcode killer. Test the same file with subtitles off; if it plays, switch that title to text subtitles (SRT) or set the client to not burn in.

When only some files fail

A library where everything plays except a stubborn handful is a codec story. Check the failing file's specs (three-dot menu » Media info): the suspects are 10-bit HEVC, AV1, Dolby Vision profiles and exotic audio like DTS-HD on clients that can't decode them and servers that can't transcode them fast enough. Options, in my order of preference: play it on a stronger client (desktop apps decode nearly everything), pre-convert the handful with ffmpeg or Handbrake into H.264/AAC, or accept the transcode cost and give the server enough CPU to survive it, checking live usage on the dashboard while the file plays. Re-encoding your whole library "just in case" is the option I'd skip; storage is cheaper than the quality loss.

A special mention for files that are simply broken: half-downloaded, corrupt or mislabeled containers fail with this same generic error. ffprobe /path/to/file on the server settles it; if ffprobe can't parse the file, no player setting will.

When everything suddenly fails

Working library yesterday, fatal errors everywhere today points at an environment change rather than media. The checklist: disk space first (it's disk space surprisingly often, and the fix overlaps with our Jellyfin backup guide's advice on keeping data directories breathing), then a recent server update that changed the ffmpeg package, then permissions if you migrated or restored anything. Jellyfin ships its own ffmpeg build (jellyfin-ffmpeg) for a reason; a well-meaning admin replacing it with the distro's ffmpeg produces subtle transcode failures that look exactly like this. apt list --installed | grep ffmpeg should show the jellyfin-ffmpeg package on a package-based install.

Verify the fix and prevent the rerun

Replay the original failing file on the original failing client; that's the only test that counts. Then two habits keep the error rare. Watch the dashboard's active-streams panel during a transcode once, so you know what your server's normal looks like (CPU load, transcode speed above 1.0x means it's keeping up). And when adding media, prefer formats your actual devices direct-play; every direct play is a transcode that can't fail.

The error message never gets better, but after one lap of this process you stop needing it to.

Your idea deserves better hosting

24/7 support 30-day money-back guarantee Cancel anytime
Billing Cycle

VPS.S1

22.67 zł Save  17 %
18.89 Monthly
  • 2 vCPU AMD EPYC
  • 2 GB RAMMEMORY
  • 30 GB NVMeSTORAGE
  • Unmetered bandwidth
  • IPv4 & IPv6IPv6 is currently unavailable in France, Finland or the Netherlands. included

VPS.S3

56.73 zł Save  33 %
37.81 Monthly
  • 4 vCPU AMD EPYC
  • 6 GB RAMMEMORY
  • 70 GB NVMeSTORAGE
  • Unmetered bandwidth
  • IPv4 & IPv6IPv6 is currently unavailable in France, Finland or the Netherlands. included

EPYC VPS.P1

34.03 zł Save  22 %
26.46 Monthly
  • 2 vCPU AMD EPYC
  • 4 GB RAMMEMORY
  • 40 GB NVMeSTORAGE
  • Unmetered bandwidth
  • IPv4 & IPv6IPv6 is currently unavailable in France, Finland or the Netherlands. included
  • Free auto backupsIncludes one backup slot you can set to run daily, weekly or monthly.

EPYC VPS.P2

64.30 zł Save  24 %
49.17 Monthly
  • 2 vCPU AMD EPYC
  • 8 GB RAMMEMORY
  • 80 GB NVMeSTORAGE
  • Unmetered bandwidth
  • IPv4 & IPv6IPv6 is currently unavailable in France, Finland or the Netherlands. included
  • Free auto backupsIncludes one backup slot you can set to run daily, weekly or monthly.

EPYC VPS.P4

113.51 zł Save  23 %
87.01 Monthly
  • 4 vCPU AMD EPYC
  • 16 GB RAMMEMORY
  • 160 GB NVMeSTORAGE
  • Unmetered bandwidth
  • IPv4 & IPv6IPv6 is currently unavailable in France, Finland or the Netherlands. included
  • Free auto backupsIncludes one backup slot you can set to run daily, weekly or monthly.

EPYC VPS.P5

151.36 zł Save  25 %
113.51 Monthly
  • 8 vCPU AMD EPYC
  • 16 GB RAMMEMORY
  • 180 GB NVMeSTORAGE
  • Unmetered bandwidth
  • IPv4 & IPv6IPv6 is currently unavailable in France, Finland or the Netherlands. included
  • Free auto backupsIncludes one backup slot you can set to run daily, weekly or monthly.

EPYC VPS.P6

227.05 zł Save  25 %
170.28 Monthly
  • 8 vCPU AMD EPYC
  • 32 GB RAMMEMORY
  • 200 GB NVMeSTORAGE
  • Unmetered bandwidth
  • IPv4 & IPv6IPv6 is currently unavailable in France, Finland or the Netherlands. included
  • Free auto backupsIncludes one backup slot you can set to run daily, weekly or monthly.

EPYC VPS.P7

264.90 zł Save  29 %
189.20 Monthly
  • 16 vCPU AMD EPYC
  • 32 GB RAMMEMORY
  • 240 GB NVMeSTORAGE
  • Unmetered bandwidth
  • IPv4 & IPv6IPv6 is currently unavailable in France, Finland or the Netherlands. included
  • Free auto backupsIncludes one backup slot you can set to run daily, weekly or monthly.

Genoa VPS.G2

94.58 zł Save  20 %
75.66 Monthly
  • 2 vCPUAMD EPYC Genoa 4th generation 9xx4 with 3.25 GHz or similar, on Zen 4 architecture. AMD EPYC G4
  • 4 GB DDR5MEMORY
  • 50 GB NVMeSTORAGE
  • Unmetered bandwidth
  • IPv4 & IPv6IPv6 is currently unavailable in France, Finland or the Netherlands. included
  • Free auto backupsIncludes one backup slot you can set to run daily, weekly or monthly.

Genoa VPS.G4

170.28 zł Save  22 %
132.43 Monthly
  • 4 vCPUAMD EPYC processor with dedicated vCPU cores, on enterprise server hardware. AMD EPYC G4
  • 8 GB DDR5MEMORY
  • 100 GB NVMeSTORAGE
  • Unmetered bandwidth
  • IPv4 & IPv6IPv6 is currently unavailable in France, Finland or the Netherlands. included
  • Free auto backupsIncludes one backup slot you can set to run daily, weekly or monthly.

Genoa VPS.G6

340.60 zł Save  22 %
264.90 Monthly
  • 8 vCPUAMD EPYC processor with dedicated vCPU cores, on enterprise server hardware. AMD EPYC G4
  • 16 GB DDR5MEMORY
  • 200 GB NVMeSTORAGE
  • Unmetered bandwidth
  • IPv4 & IPv6IPv6 is currently unavailable in France, Finland or the Netherlands. included
  • Free auto backupsIncludes one backup slot you can set to run daily, weekly or monthly.

Genoa VPS.G7

605.54 zł Save  22 %
473.07 Monthly
  • 8 vCPUAMD EPYC processor with dedicated vCPU cores, on enterprise server hardware. AMD EPYC G4
  • 32 GB DDR5MEMORY
  • 250 GB NVMeSTORAGE
  • Unmetered bandwidth
  • IPv4 & IPv6IPv6 is currently unavailable in France, Finland or the Netherlands. included
  • Free auto backupsIncludes one backup slot you can set to run daily, weekly or monthly.

AMD Ryzen VPS.R1

64.30 zł Save  18 %
52.95 Monthly
  • 1 dedicated CPU AMD Ryzen 9 7950X with 4.5 GHz or similar, on Zen 4 architecture. vCPU
  • 4 GB DDR5MEMORY
  • 50 GB NVMeSTORAGE
  • Unmetered bandwidth
  • IPv4 & IPv6 included IPv6 support is currently unavailable in France, Finland or the Netherlands.
  • Auto backup included

AMD Ryzen VPS.R2

113.51 zł Save  17 %
94.58 Monthly
  • 2 dedicated CPUs AMD Ryzen 9 7950X with 4.5 GHz or similar, on Zen 4 architecture. vCPU
  • 8 GB DDR5MEMORY
  • 100 GB NVMeSTORAGE
  • Unmetered bandwidth
  • IPv4 & IPv6 included IPv6 support is currently unavailable in France, Finland or the Netherlands.
  • Auto backup included

AMD Ryzen VPS.R4

416.29 zł Save  18 %
340.60 Monthly
  • 8 dedicated CPUs AMD Ryzen 9 7950X with 4.5 GHz or similar, on Zen 4 architecture. vCPU
  • 32 GB DDR5MEMORY
  • 400 GB NVMeSTORAGE
  • Unmetered bandwidth
  • IPv4 & IPv6 included IPv6 support is currently unavailable in France, Finland or the Netherlands.
  • Auto backup included

Answers to common questions

Why does the same file play on my phone but not my TV?

Different decoders. Phones and desktops carry broad codec support, TV apps lean on the TV's fixed-function hardware. The server transcodes for the weak client when it can; when that transcode fails, only the weak client shows the error.

GPU products are in high demand at the moment. Fill the form to get notified as soon as your preferred GPU server is back in stock.