News15 days ago

Jellyfin 12.0 Rewrites Your Database on First Boot and a Backup Is the Only Way Back

Jellyfin 12.0 landed on 8 September after 323 days and 7 release candidates. It rewrites your library database on first boot, and the maintainers say a backup is the only way back to the version you were on.

The WJS Desk

Sep 9, 2026 · 5 min read

Photo by Avinash Kumar on Pexels

Jellyfin 12.0 was published on 8 September 2026, 323 days after 10.11.0 and after 7 release candidates spread across 79 days. The release notes open with a line in capitals: "IT IS VERY IMPORTANT THAT YOU READ THIS SECTION BEFORE UPGRADING."

We went and read it, because the sentence that follows is the kind of thing self-hosters find out about at 11pm on a Tuesday. "This release changes the database schema and actively rewrites data on first boot, so a backup is the only way back to your previous version." There is no downgrade. You start the container, it converts your library, and the only undo is the copy you took first.

They renamed the version, and they were right to

The most visible change is arithmetic. What would have shipped as 10.12.0 is now 12.0, because the project dropped the leading 10 it had carried since 2018.

The maintainers give a reason we find hard to argue with: "A release like 10.11.0 was, by any reasonable measure, a major release. It rewrote the library database, but the version number presented it as a minor update." Seven years of major surgery labelled as point releases is a real problem when the audience is people running the thing on a NAS in a cupboard, and semantic versioning is the only warning label most of them will ever see.

What breaks

This is the part that decides whether you upgrade this weekend or next month.

Area10.11.x12.0
Runtime targetPrevious .NET.NET 10, plugin interfaces changed
Third-party pluginsWork as builtMust be retargeted and rebuilt
Legacy /emby/ and /mediabrowser/Still servedRemoved
DatabaseIn placeRewritten on first boot, no downgrade
UsernamesCase sensitiveCase insensitive
Playlists and collectionsStored as blobsOne row per item, faster on large libraries
Books and comicsPlugin requiredNative OPF, ComicInfo, ComicBookInfo

Two entries there deserve more than a table row. The /emby/ and /mediabrowser/ paths are inherited from Emby, the closed-source project Jellyfin forked from in 2018. Removing them is correct hygiene and it will silently kill old third-party clients that nobody has recompiled in years. The release notes say so directly: "Very old third-party clients will stop working."

The other is GetItems. The maintainers write that "the same query can return a different result set than it did on 10.11." If you have scripts, dashboards or automations hitting the API, that is a behaviour change with no error message attached, which is the worst kind.

The step everyone will skip: a full library scan is required after upgrading, and the maintainers warn the first one "will take significantly longer than normal, and some movies may appear as newly added." On a large library that is hours, not minutes. Plan the upgrade for a night nobody wants to watch anything.

One more constraint worth checking before you pull the image: you can only upgrade from 10.10.7 or a 10.11.x release. Anything older needs an intermediate hop first.

It shipped 51 days after the project leader resigned

On 19 July 2026, Joshua Boniface resigned as Jellyfin project leader. In his own post he wrote that he "simply could no longer provide the effort (mental or time-wise) that the role demanded, and thus I was not performing my duties to an acceptable degree." Core team member Anthony Lavado stepped down the same day. Co-founder Andrew Rabert had left two days earlier.

Three departures inside 72 hours is the kind of thing that usually precedes a release slipping by a year. This one shipped 51 days later, and the honest reading is that the work was already done: release candidate 1 was tagged on 21 June 2026, 28 days before Boniface resigned. The release was in the pipeline before the leadership left it.

That matches what Boniface said on the way out. "The same people who have actually been doing the work for the last several years are still with the project, including the remaining Core team." Shipping 12.0 on schedule is the first piece of evidence for that claim rather than a promise about it. The open question is the next one: a project that just renamed its versioning scheme to signal major releases more clearly now has to sustain that under a leadership structure it is still filling in.

Hacker News spent 343 comments not talking about it

The release hit 601 points and 343 comments on Hacker News and another 38 on Lobsters. We read the thread expecting arguments about the schema rewrite. Almost none of it is about 12.0.

The thread is about Plex. Specifically, about when Plex will finally do something bad enough to force a migration, and whether Jellyfin's clients are good enough yet to receive one. doctoboggan framed it as insurance: Jellyfin's progress "will increasingly give me a soft landing for when Plex finally does something to make me move." buran77 is already hedged, running "Jellyfin pointed at the same content as Plex for some time now."

The most useful comment is the dissent. BeetleB replied to yet another prediction of an imminent Plex rug pull with: "I've been hearing that for as long as Jellyfin has existed. Until they handle OTA (along with its EPG), and DVR properly, it's the inferior option for me." That is the actual state of things. The gap is not the server, which 12.0 has just made materially faster on large libraries. The gap is clients and the long tail of features, and doctoboggan named why it matters: the clients are "where my non technical friends and family mostly interact with the system."

We did not run the upgrade ourselves, so every number in this piece is the maintainers' or the thread's, not a measurement of ours.

Why the renumbering is the story

Jellyfin has 56,793 stars and is GPL-2.0, which means the people affected by a bad upgrade are the same people who cannot escalate to anyone. There is no support contract. There is a backup or there is not.

Version numbers are a safety feature when your users are the operations team.

Plenty of projects have shipped a schema rewrite inside a point release. Very few have then published a paragraph saying the version number was misleading and changing it. Jellyfin did both in the same release: the most disruptive upgrade in its history, and the first one whose number tells you that in advance.

If you self-host it, the action is boring and unavoidable. Take a full manual backup, confirm you are on 10.10.7 or 10.11.x, check whether any plugin you rely on has a 12.0 build, and budget an evening for the scan. If you are still on Plex and waiting for a reason, this release is a faster server and a better versioning policy. It is not the client story that would actually move you.

Share

Jellyfin 12.0 rewrites your library database on first boot and the maintainers say a backup is the only way back. 323 days, 7 release candidates, and every plugin needs a rebuild. #Jellyfin #SelfHosted #OpenSource #HomeLab

Never miss a ship

The best stuff that shipped this week, delivered every Thursday. Free, no spam. We read all the boring stuff so you get the fun parts.

Keep reading