[Electric Eel][Jellyfin][ffmpeg] Playback error due to permissions denied

I got the same mess after upgrading to Electric Eel. Before I never used ACL, so I was thinking it’s good for the migration, but then I got this playback fatal issue. I did enable ACL for all hosted path in the Jellyfin config, with user ID from apps user, full control and forced permission, for all path, config, transcode and all media folders… I’m not sure it was necessary to do it for all or only some, but when I try only the “series” folder for example, if was not working, when I did all it was.
Quite strange. If someone has an explanation or should advise not to have ACl for all path, let us know.
It looks like other app with hosted path and not ACL are not affected (radarr, sonarr…) but I’m still checking.

I have Goldeye (25.10.0) but I’m having some of the same problems.

All my media files are in a Jellyfin dataset within an “SMB Share” dataset. I need to do things this way so that I can add media to the Jellyfin dataset over the network/remotely, since all my media (until I get it transferred to my TrueNAS’s storage) resides on a Windows 11 SMB share.

The first problem was, I couldn’t get Jellyfin to detect any media files. Eventually figured out I had to add the “apps” users to the ACL for the SMB Share dataset, and apply permisison recursively (or at least that’s the way I did it). Now Jellyfin can see media, but can’t play anything (more on that below).

About the Jellyfin app, do I have to use “host path” for “Jellyfin config storage,” “Jellyfin cache storage” and “Jellyfin transcode storage?” I have them as Ix volumes for now, not knowing better and that being the default. If they have to be “host path” folders, which type should I pick? App?

There are way too many options, and no obvious way of picking the correct ones. This is extremely frustrating.

When I try to play media, I get either “Unable to find a valid media source to play” or “Playback failed due to a fatal player error.” Looking in the Jellyfin logs, I see permission errors. Why? I thought I fixed that by giving the Jellyfin app access to the dataset containing the media. What am I supposed to do to fix this?

When doing the “Add storage” step in jellyfin app setup, do I check “Enable ACL” or not? I don’t understand the context? Which ACL does that refer to?

I’m willing to start over from scratch if necessary, reinstalling the Jellyfin app and re-setting-up my datasets entirely. At this point I have no idea what to do next.

Can someone please give me a detailed, step-by-step guide for setting up Jellyfin on TrueNAS? I’ve yet to find any such thing anywhere on the Internet. All the walkthroughs I can find so far are either old, missing details, or both.

fwiw, here’s an example of the kind of errors I find in the JF logs when I attempt playback:

[2025-11-19 10:40:52.858 -07:00] [ERR] [149] Emby.Server.Implementations.IO.LibraryMonitor: Permission error for Directory watcher: "/jf_media"

That’s from a log entry titled “log_20251119.log” (presumably because I tried playback a few minutes ago).

Here is a typical error message from an “FFmpeg.Transcode-2025-11-19-(alphabet soup).log” entry:

[in#0 @ 0x7fa445822300] Error opening input: Permission denied
Error opening input file file:/jf_media/Foundation.S03E05.Where.Tyrants.Spend.Eternity.2160p.10bit.ATVP.WEB-DL.DDP5.1.HEVC-Vyndros.mkv.
Error opening input files: Permission denied

You can see I’m trying to play an .mkv file of a certain sci fi series.

These constant permission errors make absolutely no sense to me. I already gave Jellyfin the necessary permissions to access the media dataset (mounted as “/jf_media” within the Jellyfin docker/app).

I may (and I cannot emphasize “may" enough!) have this sorted. Need to do more testing before I’m confident in the answer though.

It seems to have to do with applying permissions recursively. I don’t want to get anyone excited about what turns out to be a non-solution, so I’ll leave it at that for now.

If I can verify that the fix does indeed work, I’ll take a stab at that detailed writeup I requested.