Not sure if this is affecting anyone else, but ever since moving to fangtooth i have to install jellyfin to the default ix-apps rather than its own dataset that i have been using forever. i moved from having my apps on my main hdd pool to its own nvme device so i went to reinstall everything using its own named dataset (with apps preset) but only jellyfin is giving me issues. at first it would not save when i tried to add back my users (“there was an error processing the request”) and would not even show the “add library” button (just infinite load wheel), then after a few starts and stops and reinstalls to see if its a permissions issue in the dataset or what, now it wont even launch, it just fails and stops. however when i install it with all defaults to ix-apps it all works peachy keen no problems at all. this would be fine, but i like keeping my apps in their own datasets for ocd (i guess?) reasons so i would rather fix this to make it work as normal inside its own dataset again if at all possible.
I have Jellyfin running in its own datasets (only using the temporary ixvolume for transcodes) on 25.04.1, so it is possible. Do you have the permissions on the datasets correct, matching the user/group in the Jellyfin TrueNAS App config?
From the command line you can run: docker logs ix-jellyfin-jellyfin-1 (assuming you have not renamed the container from default, otherwise modify accordingly) to see the logs. That might give you a hint as to what it is doing.
I just went ahead and did a default install for the time being, I’ll have to go back and try again to make sure permissions and everything were right but I’m 99% sure I set it all up correctly but who knows.
turns out it was having the transcodes path inside of the dataset, as soon as i set it to temp storage everything started working properly immediately. something must have been changed in an update at some point because it was never ever a problem for like 2 years up until a little while ago.
Current version of Jellyfin uses /cache/transcodes. I found this in the TrueNAS App for Jellyfin, which suggests that at some point it moved:
{#
Old installs use config and new uses cache.
Even if we forced the cache dir above, old installs carry the setting via config file.
So we mount the transcodes storage to both locations.
#}
{% do c1.add_storage("/config/transcodes", transcodes_storage) %}
{% do c1.add_storage("/cache/transcodes", transcodes_storage) %}
The TrueNAS app mounts /config/transcodes as tmpfs. I am not sure why one would do that – transcodes could be huge, and there is a job to clean transcodes on startup and periodically thereafter. The Jellyfin published docker-compose.yaml does not mount a volume on /cache/transcodes.
idk
Ever since Jellyfin update to v10.9.0, the Docker image has been using /cache/transcodes
for the transcode directory.
/config/transcodes
is the old behavior of v10.8.13 and older.
That change was done because the option to change where your transcode directory is located on the app launcher GUI was broken due to that.
The issue is that older Jellyfin installs will carry over transcodes to live on /config/transcodes
despite upgrading to newer versions.
Maybe the TrueNAS app should reconsider mounting a transcodes directory.