We’re excited to announce the fifth release candidate for Jellyfin 12.0. This is a preview build aimed at testers who want to help us catch bugs before the final public release. As always, make sure to stop your Jellyfin server and take a full backup before upgrading.
A note about versioning
Starting with this release, we’re dropping the leading 10. from our version numbers. So 10.11.x becomes 12.x. The reasoning is simple: after all this time, we don’t anticipate a hard API break like we once planned, and the old versioning scheme caused a lot of confusion about what counted as a “major” release. For more background, check the RC1 release notes.
What’s new?
The primary focus of this release has been performance. The previous 10.11.0 release introduced a major backend rewrite that worked broadly but had plenty of rough edges. This release aims to smooth out most of those edges and deliver better performance for everyone.
There are also many smaller fixes, improvements, and translation updates. You can find our draft release notes and the full list of pull requests online, as well as the web-side changelog.
Note: You must be on Jellyfin 10.10.7+ or 10.11.x (ideally 10.11.11) before upgrading, or the upgrade will fail. Upgrade to one of those versions first.
Note: The first start of Jellyfin 12.x will run several migrations and can take a few minutes. Please be patient and don’t interrupt the process. The improved startup UI will show detailed progress on your local network, or general progress when accessing remotely, by visiting the server URL in your browser during startup.
Note: If you install this RC, disable all external plugins and reinstall them from the unstable plugin repository, otherwise plugins may fail to load and cause unintended side effects.
Installing
This preview is distributed through all our usual channels, but not automatically via our Apt repository or the latest tag.
For non-Docker setups, manually download the files from our repository and select “Stable Preview” for your operating system.
For Docker, pull the 12.0-rc5 or preview tags.
Key improvements in RC5
On the performance and database side, the team has sped up how related information is written to the database, batched people lookups and media source count queries, switched SQLite connections to a private cache, and streamlined internal query helpers. A warning was added for unsafe pessimistic locking behavior, and errors that were previously swallowed during command execution are now caught and logged properly.
Several playback and media management issues have been fixed. PCM audio transcoding to WAV no longer fails with an HTTP 500 or produces headerless output, concurrent ffmpeg segment generation is no longer subject to race conditions, ReplayGain album gain is now parsed correctly, and image endpoints no longer upscale beyond the original source resolution. Only series and seasons are treated as resumable folders, folder extras stay attached to their owning item, and a change that refreshed Live TV channel icons on every guide update was reverted.
Metadata and search handling received multiple corrections. People deduplication was improved, by-name endpoints now report accurate total counts, person type filters work as expected, remote provider pagination is bounded, and metadata provider caches are cleared when plugins register their parts. Disabled plugins will no longer be re-enabled on restart, and search fallback plus item removal events were restored after access filtering.
Finally, several build and dependency updates were applied, including updates to the CodeQL action and SharpCompress, along with fixes to assembly loading and the master build stability.
This release also welcomes several first-time contributors whose work spans media fixes, metadata improvements, and image handling.



