Migration failure on upgrading to 10.11.0 (MigrateLibraryDb) #7461

Open
opened 2026-02-07 05:00:37 +03:00 by OVERLORD · 24 comments
Owner

Originally created by @brianjmurrell on GitHub (Oct 21, 2025).

Description of the bug

After upgrading to Jellyfin 10.11.0 from 10.10.7 the first startup after the upgrade failed with a database migration.

Reproduction steps

Not sure beyond the obvious of trying to update from 10.10.7 to 10.11.0.

What is the current bug behavior?

Database migration failed on start.

What is the expected correct behavior?

Database migration is successful.

Jellyfin Server version

10.10.0+

Specify commit id

No response

Specify unstable release number

No response

Specify version number

No response

Specify the build version

I cannot as the server failed to start

Environment

- OS: Fedora 42
- Linux Kernel: 6.16.10-200.fc42.x86_64
- Virtualization: None (blech)
- Clients: N/A
- Browser: N/A
- FFmpeg Version: N/A
- Playback Method: N/A
- Hardware Acceleration: N/A
- GPU Model: N/A
- Plugins: N/A (or mostly cannot determine when the server won't start)
- Reverse Proxy: None (again, blech)
- Base URL: N/A
- Networking: N/A / native
- Jellyfin Data Storage: Local disk
- Media Storage: N/A
- External Integrations: Jellyseerr

Jellyfin logs

[2025-10-20 17:23:25.146 -04:00] [INF] [146] Emby.Server.Implementations.Session.SessionManager: Sending shutdown notifications
[2025-10-20 17:23:25.247 -04:00] [INF] [116] Jellyfin.Networking.PortForwardingHost: Stopping NAT discovery
[2025-10-20 17:23:25.295 -04:00] [INF] [11] Main: Running query planner optimizations in the database... This might take a while
[2025-10-20 17:23:25.596 -04:00] [INF] [11] Emby.Server.Implementations.ApplicationHost: Disposing "CoreAppHost"
[2025-10-20 17:23:25.597 -04:00] [INF] [11] Emby.Server.Implementations.ApplicationHost: Disposing "MusicBrainzArtistProvider"
[2025-10-20 17:23:25.599 -04:00] [INF] [11] Emby.Server.Implementations.ApplicationHost: Disposing "MusicBrainzAlbumProvider"
[2025-10-20 17:23:25.599 -04:00] [INF] [11] Emby.Server.Implementations.ApplicationHost: Disposing "PluginManager"
[2025-10-20 17:23:26.579 -04:00] [INF] [1] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: "/var/cache/jellyfin"
[2025-10-20 17:23:27.426 -04:00] [INF] [7] Jellyfin.Server.ServerSetupApp.SetupServer: Kestrel is listening on "all interfaces"
[2025-10-20 17:23:27.473 -04:00] [INF] [7] Main: Jellyfin version: "10.11.0"
[2025-10-20 17:23:27.477 -04:00] [INF] [7] Main: Environment Variables: ["[JELLYFIN_DATA_DIR, /var/lib/jellyfin]", "[JELLYFIN_CONFIG_DIR, /etc/jellyfin]", "[JELLYFIN_CACHE_DIR, /var/cache/jellyfin]", "[JELLYFIN_LOG_DIR, /var/log/jellyfin]", "[JELLYFIN_WEB_OPT, --webdir=/usr/share/jellyfin-web]"]
[2025-10-20 17:23:27.479 -04:00] [INF] [7] Main: Arguments: ["/usr/lib64/jellyfin/jellyfin.dll", "--webdir=/usr/share/jellyfin-web"]
[2025-10-20 17:23:27.479 -04:00] [INF] [7] Main: Operating system: "Fedora Linux 42 (Adams)"
[2025-10-20 17:23:27.479 -04:00] [INF] [7] Main: Architecture: X64
[2025-10-20 17:23:27.480 -04:00] [INF] [7] Main: 64-Bit Process: True
[2025-10-20 17:23:27.480 -04:00] [INF] [7] Main: User Interactive: True
[2025-10-20 17:23:27.480 -04:00] [INF] [7] Main: Processor count: 8
[2025-10-20 17:23:27.480 -04:00] [INF] [7] Main: Program data path: "/var/lib/jellyfin"
[2025-10-20 17:23:27.480 -04:00] [INF] [7] Main: Log directory path: "/var/log/jellyfin"
[2025-10-20 17:23:27.480 -04:00] [INF] [7] Main: Config directory path: "/etc/jellyfin"
[2025-10-20 17:23:27.480 -04:00] [INF] [7] Main: Cache path: "/var/cache/jellyfin"
[2025-10-20 17:23:27.480 -04:00] [INF] [7] Main: Temp directory path: "/tmp/jellyfin"
[2025-10-20 17:23:27.481 -04:00] [INF] [7] Main: Web resources path: "/usr/share/jellyfin-web"
[2025-10-20 17:23:27.481 -04:00] [INF] [7] Main: Application directory: "/usr/lib64/jellyfin/"
[2025-10-20 17:23:27.497 -04:00] [INF] [7] Jellyfin.Server.Startup: Storage path `"/var/lib/jellyfin/data"` (Fixed) successfully checked with "34.2GB" free which is over the minimum of "2GB".
[2025-10-20 17:23:27.498 -04:00] [INF] [7] Jellyfin.Server.Startup: Storage path `"/var/log/jellyfin"` (Fixed) successfully checked with "34.2GB" free which is over the minimum of "512MB".
[2025-10-20 17:23:27.498 -04:00] [INF] [7] Jellyfin.Server.Startup: Storage path `"/var/cache/jellyfin"` (Fixed) successfully checked with "34.2GB" free which is over the minimum of "2GB".
[2025-10-20 17:23:27.498 -04:00] [INF] [7] Jellyfin.Server.Startup: Storage path `"/var/lib/jellyfin"` (Fixed) successfully checked with "34.2GB" free which is over the minimum of "2GB".
[2025-10-20 17:23:27.498 -04:00] [INF] [7] Jellyfin.Server.Startup: Storage path `"/tmp/jellyfin"` (Ram) successfully checked with "7.7GB" free which is over the minimum of "2GB".
[2025-10-20 17:23:27.502 -04:00] [INF] [7] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: "/var/cache/jellyfin"
[2025-10-20 17:23:27.586 -04:00] [INF] [7] Jellyfin.Database.Providers.Sqlite.SqliteDatabaseProvider: SQLite connection string: "Data Source=/var/lib/jellyfin/data/jellyfin.db;Cache=Default;Pooling=True"
[2025-10-20 17:23:27.595 -04:00] [INF] [7] Jellyfin.Database.Providers.Sqlite.SqliteDatabaseProvider: SQLITE connection pragma command set to: 
"PRAGMA locking_mode=NORMAL;
PRAGMA journal_size_limit=134217728;
PRAGMA synchronous=1;
PRAGMA temp_store=2;
"
[2025-10-20 17:23:27.597 -04:00] [INF] [7] Jellyfin.Database.Implementations.Locking.NoLockBehavior: The database locking mode has been set to: NoLock.
[2025-10-20 17:23:27.651 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Initialise Migration service.
[2025-10-20 17:23:27.682 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Old migration style migration.xml detected. Migrate now.
[2025-10-20 17:23:28.823 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 9b354818-94d5-4b68-ac49-e35cb85f9d84-"CreateNetworkConfiguration".
[2025-10-20 17:23:28.832 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 4fb5c950-1991-11ee-9b4b-0800200c9a66-"MigrateNetworkConfiguration".
[2025-10-20 17:23:28.832 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration a6dcacf4-c057-4ef9-80d3-61cef9ddb4f0-"MigrateMusicBrainzTimeout".
[2025-10-20 17:23:28.833 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration a8e61960-7726-4450-8f3d-82c12daabbcb-"MigrateEncodingOptions".
[2025-10-20 17:23:28.833 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration e73b777d-cd5c-4e71-957a-b86b3660b7cf-"RenameEnableGroupingIntoCollections".
[2025-10-20 17:23:28.834 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 4124c2cd-e939-4ffb-9be9-9b311c413638-"DisableTranscodingThrottling".
[2025-10-20 17:23:28.834 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration ef103419-8451-40d8-9f34-d1a8e93a1679-"CreateUserLoggingConfigFile".
[2025-10-20 17:23:28.834 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 3793eb59-bc8c-456c-8b9f-bd5a62a42978-"MigrateActivityLogDb".
[2025-10-20 17:23:28.834 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration acbe17b7-8435-4a83-8b64-6fcf162cb9bd-"RemoveDuplicateExtras".
[2025-10-20 17:23:28.835 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration eb58ebee-9514-4b9b-8225-12e1a40020df-"AddDefaultPluginRepository".
[2025-10-20 17:23:28.835 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 5c4b82a2-f053-4009-bd05-b6fcad82f14c-"MigrateUserDb".
[2025-10-20 17:23:28.835 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 5f86e7f6-d966-4c77-849d-7a7b40b68c4e-"ReaddDefaultPluginRepository".
[2025-10-20 17:23:28.835 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 06387815-c3cc-421f-a888-fb5f9992bea8-"MigrateDisplayPreferencesDb".
[2025-10-20 17:23:28.836 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration a81f75e0-8f43-416f-a5e8-516ccab4d8cc-"RemoveDownloadImagesInAdvance".
[2025-10-20 17:23:28.836 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 5bd72f41-e6f3-4f60-90aa-09869abe0e22-"MigrateAuthenticationDb".
[2025-10-20 17:23:28.836 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 615dfa9e-2497-4dbb-a472-61938b752c5b-"FixPlaylistOwner".
[2025-10-20 17:23:28.836 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 34a1a1c4-5572-418e-a2f8-32cdfe2668e8-"AddDefaultCastReceivers".
[2025-10-20 17:23:28.836 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 852816e0-2712-49a9-9240-c6fc5fcad1a8-"UpdateDefaultPluginRepository".
[2025-10-20 17:23:28.837 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration cf6fabc2-9fbe-4933-84a5-ffe52ef22a58-"FixAudioData".
[2025-10-20 17:23:28.837 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 96c156a2-7a13-4b3b-a8b8-fb80c94d20c0-"RemoveDuplicatePlaylistChildren".
[2025-10-20 17:23:28.837 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Rename old migration.xml to migration.xml.backup
[2025-10-20 17:23:28.851 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: There are 0 migrations for stage PreInitialisation.
[2025-10-20 17:23:28.857 -04:00] [INF] [7] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: "/var/cache/jellyfin"
[2025-10-20 17:23:28.960 -04:00] [INF] [7] Emby.Server.Implementations.ApplicationHost: Loading assemblies
[2025-10-20 17:23:28.965 -04:00] [INF] [7] Emby.Server.Implementations.Plugins.PluginManager: Skipping disabled plugin "10.7.0.0" of "Kodi Sync Queue" 
[2025-10-20 17:23:28.965 -04:00] [INF] [7] Emby.Server.Implementations.Plugins.PluginManager: Skipping disabled plugin "10.7.0.0" of "Trakt" 
[2025-10-20 17:23:29.005 -04:00] [INF] [7] Jellyfin.Networking.Manager.NetworkManager: Defined LAN subnets: ["::1/128", "fe80::/10", "fc00::/7", "127.0.0.1/8", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"]
[2025-10-20 17:23:29.006 -04:00] [INF] [7] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions: []
[2025-10-20 17:23:29.006 -04:00] [INF] [7] Jellyfin.Networking.Manager.NetworkManager: Used LAN subnets: ["::1/128", "fe80::/10", "fc00::/7", "127.0.0.1/8", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"]
[2025-10-20 17:23:29.008 -04:00] [INF] [7] Jellyfin.Networking.Manager.NetworkManager: Filtered interface addresses: ["127.0.0.1", "10.75.22.1", "::1", "fd31:aeb1:48df:0:3b14:e643:83d8:7017", "2001:123:4567:0:90cc:a629:cf42:5877", "fe80::a2d4:ede6:5587:6a7a%6"]
[2025-10-20 17:23:29.008 -04:00] [INF] [7] Jellyfin.Networking.Manager.NetworkManager: Bind Addresses ["::"]
[2025-10-20 17:23:29.008 -04:00] [INF] [7] Jellyfin.Networking.Manager.NetworkManager: Remote IP filter is "Allowlist"
[2025-10-20 17:23:29.008 -04:00] [INF] [7] Jellyfin.Networking.Manager.NetworkManager: Filtered subnets: []
[2025-10-20 17:23:29.544 -04:00] [INF] [7] Jellyfin.Database.Providers.Sqlite.SqliteDatabaseProvider: SQLite connection string: "Data Source=/var/lib/jellyfin/data/jellyfin.db;Cache=Default;Pooling=True"
[2025-10-20 17:23:29.545 -04:00] [INF] [7] Jellyfin.Database.Providers.Sqlite.SqliteDatabaseProvider: SQLITE connection pragma command set to: 
"PRAGMA locking_mode=NORMAL;
PRAGMA journal_size_limit=134217728;
PRAGMA synchronous=1;
PRAGMA temp_store=2;
"
[2025-10-20 17:23:29.545 -04:00] [INF] [7] Jellyfin.Database.Implementations.Locking.NoLockBehavior: The database locking mode has been set to: NoLock.
[2025-10-20 17:23:29.550 -04:00] [INF] [7] Main: Prepare system for possible migrations
[2025-10-20 17:23:29.584 -04:00] [INF] [7] Main: A migration will attempt to modify the library.db, will attempt to backup the file now.
[2025-10-20 17:23:29.586 -04:00] [INF] [7] Main: Backing up "library.db" to "/var/lib/jellyfin/data/library.db.bak5"
[2025-10-20 17:23:29.589 -04:00] [INF] [7] Main: "library.db" backed up to "/var/lib/jellyfin/data/library.db.bak5"
[2025-10-20 17:23:29.589 -04:00] [INF] [7] Main: "library.db" has been backed up as "/var/lib/jellyfin/data/library.db.bak5"
[2025-10-20 17:23:29.589 -04:00] [INF] [7] Main: A migration will attempt to modify the jellyfin.db, will attempt to backup the file now.
[2025-10-20 17:23:29.589 -04:00] [INF] [7] Main: Jellyfin database has been backed up as "20251020092329"
[2025-10-20 17:23:29.598 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: There are 0 migrations for stage CoreInitialisation.
[2025-10-20 17:23:29.599 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20241020103111_LibraryDbMigration"
[2025-10-20 17:23:29.805 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20241020103111_LibraryDbMigration" was successfully applied
[2025-10-20 17:23:29.805 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20241111131257_AddedCustomDataKey"
[2025-10-20 17:23:29.835 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20241111131257_AddedCustomDataKey" was successfully applied
[2025-10-20 17:23:29.835 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20241111135439_AddedCustomDataKeyKey"
[2025-10-20 17:23:29.900 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20241111135439_AddedCustomDataKeyKey" was successfully applied
[2025-10-20 17:23:29.900 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20241112152323_FixAncestorIdConfig"
[2025-10-20 17:23:29.955 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20241112152323_FixAncestorIdConfig" was successfully applied
[2025-10-20 17:23:29.955 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20241112232041_FixMediaStreams"
[2025-10-20 17:23:30.023 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20241112232041_FixMediaStreams" was successfully applied
[2025-10-20 17:23:30.023 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20241112234144_FixMediaStreams2"
[2025-10-20 17:23:30.081 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20241112234144_FixMediaStreams2" was successfully applied
[2025-10-20 17:23:30.081 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20241113133548_EnforceUniqueItemValue"
[2025-10-20 17:23:30.111 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20241113133548_EnforceUniqueItemValue" was successfully applied
[2025-10-20 17:23:30.111 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250202021306_FixedCollation"
[2025-10-20 17:23:30.162 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250202021306_FixedCollation" was successfully applied
[2025-10-20 17:23:30.162 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250204092455_MakeStartEndDateNullable"
[2025-10-20 17:23:30.220 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250204092455_MakeStartEndDateNullable" was successfully applied
[2025-10-20 17:23:30.221 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250214031148_ChannelIdGuid"
[2025-10-20 17:23:30.247 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250214031148_ChannelIdGuid" was successfully applied
[2025-10-20 17:23:30.247 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250326065026_AddInheritedParentalRatingSubValue"
[2025-10-20 17:23:30.278 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250326065026_AddInheritedParentalRatingSubValue" was successfully applied
[2025-10-20 17:23:30.279 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250327101120_AddKeyframeData"
[2025-10-20 17:23:30.308 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250327101120_AddKeyframeData" was successfully applied
[2025-10-20 17:23:30.308 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250327171413_AddHdr10PlusFlag"
[2025-10-20 17:23:30.338 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250327171413_AddHdr10PlusFlag" was successfully applied
[2025-10-20 17:23:30.338 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250331182844_FixAttachmentMigration"
[2025-10-20 17:23:30.390 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250331182844_FixAttachmentMigration" was successfully applied
[2025-10-20 17:23:30.390 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250401142247_FixAncestors"
[2025-10-20 17:23:30.417 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250401142247_FixAncestors" was successfully applied
[2025-10-20 17:23:30.417 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250405075612_FixItemValuesIndices"
[2025-10-20 17:23:30.447 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250405075612_FixItemValuesIndices" was successfully applied
[2025-10-20 17:23:30.447 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250609115616_DetachUserDataInsteadOfDelete"
[2025-10-20 17:23:30.508 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250609115616_DetachUserDataInsteadOfDelete" was successfully applied
[2025-10-20 17:23:30.508 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250622170802_BaseItemImageInfoDateModifiedNullable"
[2025-10-20 17:23:30.561 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250622170802_BaseItemImageInfoDateModifiedNullable" was successfully applied
[2025-10-20 17:23:30.561 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250714044826_ResetJournalMode"
[2025-10-20 17:23:30.591 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250714044826_ResetJournalMode" was successfully applied
[2025-10-20 17:23:30.591 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250913211637_AddProperParentChildRelationBaseItemWithCascade"
[2025-10-20 17:23:30.656 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250913211637_AddProperParentChildRelationBaseItemWithCascade" was successfully applied
[2025-10-20 17:23:30.656 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250925203415_ExtendPeopleMapKey"
[2025-10-20 17:23:30.718 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250925203415_ExtendPeopleMapKey" was successfully applied
[2025-10-20 17:23:31.378 -04:00] [INF] [7] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "TMDb" "10.11.0.0"
[2025-10-20 17:23:31.378 -04:00] [INF] [7] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "Studio Images" "10.11.0.0"
[2025-10-20 17:23:31.379 -04:00] [INF] [7] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "OMDb" "10.11.0.0"
[2025-10-20 17:23:31.397 -04:00] [INF] [7] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "MusicBrainz" "10.11.0.0"
[2025-10-20 17:23:31.397 -04:00] [INF] [7] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "AudioDB" "10.11.0.0"
[2025-10-20 17:23:31.449 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: There are 11 migrations for stage AppInitialisation.
[2025-10-20 17:23:31.449 -04:00] [INF] [7] InternalCodeMigration: Perform migration "20250420193000_MigrateLibraryDbCompatibilityCheck"
[2025-10-20 17:23:31.456 -04:00] [INF] [7] InternalCodeMigration: Migration "20250420193000_MigrateLibraryDbCompatibilityCheck" was successfully applied
[2025-10-20 17:23:31.456 -04:00] [INF] [7] InternalCodeMigration: Perform migration "20250420200000_MigrateLibraryDb"
[2025-10-20 17:23:31.461 -04:00] [INF] [7] Jellyfin.Server.Migrations.Routines.MigrateLibraryDb: Migrating the userdata from library.db may take a while, do not stop Jellyfin.
[2025-10-20 17:23:31.506 -04:00] [INF] [7] Jellyfin.Server.Migrations.Routines.MigrateLibraryDb: Start "Cleanup database"
[2025-10-20 17:23:31.532 -04:00] [INF] [7] Jellyfin.Server.Migrations.Routines.MigrateLibraryDb: "Cleanup database" took '00:00:00.0254076'
[2025-10-20 17:23:31.533 -04:00] [INF] [7] Jellyfin.Server.Migrations.Routines.MigrateLibraryDb: Start "Moving TypedBaseItem"
[2025-10-20 17:23:31.533 -04:00] [INF] [7] Jellyfin.Server.Migrations.Routines.MigrateLibraryDb: Start "Loading TypedBaseItems"
[2025-10-20 17:23:31.584 -04:00] [INF] [7] Jellyfin.Server.Migrations.Routines.MigrateLibraryDb: "Loading TypedBaseItems" took '00:00:00.0515178'
[2025-10-20 17:23:31.584 -04:00] [INF] [7] Jellyfin.Server.Migrations.Routines.MigrateLibraryDb: "Moving TypedBaseItem" took '00:00:00.0519154'
[2025-10-20 17:23:31.585 -04:00] [FTL] [7] InternalCodeMigration: Error: "Cannot deserialize unknown type."
[2025-10-20 17:23:31.585 -04:00] [ERR] [7] InternalCodeMigration: Migration "20250420200000_MigrateLibraryDb" failed
System.InvalidOperationException: Cannot deserialize unknown type.
   at Jellyfin.Server.Implementations.Item.BaseItemRepository.DeserializeBaseItem(BaseItemEntity baseItemEntity, ILogger logger, IServerApplicationHost appHost, Boolean skipDeserialization)
   at Jellyfin.Server.Migrations.Routines.MigrateLibraryDb.GetItem(SqliteDataReader reader)
   at Jellyfin.Server.Migrations.Routines.MigrateLibraryDb.Perform()
   at Jellyfin.Server.Migrations.Stages.CodeMigration.Perform(IServiceProvider serviceProvider, IStartupLogger logger, CancellationToken cancellationToken)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.InternalCodeMigration.PerformAsync(IStartupLogger logger)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider)
[2025-10-20 17:23:31.590 -04:00] [INF] [7] InternalCodeMigration: Attempt to rollback librarydb.
[2025-10-20 17:23:31.591 -04:00] [INF] [7] InternalCodeMigration: Attempt to rollback JellyfinDb.
[2025-10-20 17:23:31.607 -04:00] [FTL] [7] Main: Error while starting server
System.InvalidOperationException: Cannot deserialize unknown type.
   at Jellyfin.Server.Implementations.Item.BaseItemRepository.DeserializeBaseItem(BaseItemEntity baseItemEntity, ILogger logger, IServerApplicationHost appHost, Boolean skipDeserialization)
   at Jellyfin.Server.Migrations.Routines.MigrateLibraryDb.GetItem(SqliteDataReader reader)
   at Jellyfin.Server.Migrations.Routines.MigrateLibraryDb.Perform()
   at Jellyfin.Server.Migrations.Stages.CodeMigration.Perform(IServiceProvider serviceProvider, IStartupLogger logger, CancellationToken cancellationToken)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.InternalCodeMigration.PerformAsync(IStartupLogger logger)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider)
   at Jellyfin.Server.Program.StartServer(IServerApplicationPaths appPaths, StartupOptions options, IConfiguration startupConfig)
[2025-10-20 17:33:31.624 -04:00] [INF] [35] Main: Running query planner optimizations in the database... This might take a while
[2025-10-20 17:33:31.655 -04:00] [INF] [35] Emby.Server.Implementations.ApplicationHost: Disposing "CoreAppHost"
[2025-10-20 17:33:31.655 -04:00] [INF] [35] Emby.Server.Implementations.ApplicationHost: Disposing "MusicBrainzArtistProvider"
[2025-10-20 17:33:31.655 -04:00] [INF] [35] Emby.Server.Implementations.ApplicationHost: Disposing "MusicBrainzAlbumProvider"
[2025-10-20 17:33:31.656 -04:00] [INF] [35] Emby.Server.Implementations.ApplicationHost: Disposing "PluginManager"

FFmpeg logs


Client / Browser logs

No response

Relevant screenshots or videos

No response

Additional information

No response

Originally created by @brianjmurrell on GitHub (Oct 21, 2025). ### Description of the bug After upgrading to Jellyfin 10.11.0 from 10.10.7 the first startup after the upgrade failed with a database migration. ### Reproduction steps Not sure beyond the obvious of trying to update from 10.10.7 to 10.11.0. ### What is the current _bug_ behavior? Database migration failed on start. ### What is the expected _correct_ behavior? Database migration is successful. ### Jellyfin Server version 10.10.0+ ### Specify commit id _No response_ ### Specify unstable release number _No response_ ### Specify version number _No response_ ### Specify the build version I cannot as the server failed to start ### Environment ```markdown - OS: Fedora 42 - Linux Kernel: 6.16.10-200.fc42.x86_64 - Virtualization: None (blech) - Clients: N/A - Browser: N/A - FFmpeg Version: N/A - Playback Method: N/A - Hardware Acceleration: N/A - GPU Model: N/A - Plugins: N/A (or mostly cannot determine when the server won't start) - Reverse Proxy: None (again, blech) - Base URL: N/A - Networking: N/A / native - Jellyfin Data Storage: Local disk - Media Storage: N/A - External Integrations: Jellyseerr ``` ### Jellyfin logs ```shell [2025-10-20 17:23:25.146 -04:00] [INF] [146] Emby.Server.Implementations.Session.SessionManager: Sending shutdown notifications [2025-10-20 17:23:25.247 -04:00] [INF] [116] Jellyfin.Networking.PortForwardingHost: Stopping NAT discovery [2025-10-20 17:23:25.295 -04:00] [INF] [11] Main: Running query planner optimizations in the database... This might take a while [2025-10-20 17:23:25.596 -04:00] [INF] [11] Emby.Server.Implementations.ApplicationHost: Disposing "CoreAppHost" [2025-10-20 17:23:25.597 -04:00] [INF] [11] Emby.Server.Implementations.ApplicationHost: Disposing "MusicBrainzArtistProvider" [2025-10-20 17:23:25.599 -04:00] [INF] [11] Emby.Server.Implementations.ApplicationHost: Disposing "MusicBrainzAlbumProvider" [2025-10-20 17:23:25.599 -04:00] [INF] [11] Emby.Server.Implementations.ApplicationHost: Disposing "PluginManager" [2025-10-20 17:23:26.579 -04:00] [INF] [1] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: "/var/cache/jellyfin" [2025-10-20 17:23:27.426 -04:00] [INF] [7] Jellyfin.Server.ServerSetupApp.SetupServer: Kestrel is listening on "all interfaces" [2025-10-20 17:23:27.473 -04:00] [INF] [7] Main: Jellyfin version: "10.11.0" [2025-10-20 17:23:27.477 -04:00] [INF] [7] Main: Environment Variables: ["[JELLYFIN_DATA_DIR, /var/lib/jellyfin]", "[JELLYFIN_CONFIG_DIR, /etc/jellyfin]", "[JELLYFIN_CACHE_DIR, /var/cache/jellyfin]", "[JELLYFIN_LOG_DIR, /var/log/jellyfin]", "[JELLYFIN_WEB_OPT, --webdir=/usr/share/jellyfin-web]"] [2025-10-20 17:23:27.479 -04:00] [INF] [7] Main: Arguments: ["/usr/lib64/jellyfin/jellyfin.dll", "--webdir=/usr/share/jellyfin-web"] [2025-10-20 17:23:27.479 -04:00] [INF] [7] Main: Operating system: "Fedora Linux 42 (Adams)" [2025-10-20 17:23:27.479 -04:00] [INF] [7] Main: Architecture: X64 [2025-10-20 17:23:27.480 -04:00] [INF] [7] Main: 64-Bit Process: True [2025-10-20 17:23:27.480 -04:00] [INF] [7] Main: User Interactive: True [2025-10-20 17:23:27.480 -04:00] [INF] [7] Main: Processor count: 8 [2025-10-20 17:23:27.480 -04:00] [INF] [7] Main: Program data path: "/var/lib/jellyfin" [2025-10-20 17:23:27.480 -04:00] [INF] [7] Main: Log directory path: "/var/log/jellyfin" [2025-10-20 17:23:27.480 -04:00] [INF] [7] Main: Config directory path: "/etc/jellyfin" [2025-10-20 17:23:27.480 -04:00] [INF] [7] Main: Cache path: "/var/cache/jellyfin" [2025-10-20 17:23:27.480 -04:00] [INF] [7] Main: Temp directory path: "/tmp/jellyfin" [2025-10-20 17:23:27.481 -04:00] [INF] [7] Main: Web resources path: "/usr/share/jellyfin-web" [2025-10-20 17:23:27.481 -04:00] [INF] [7] Main: Application directory: "/usr/lib64/jellyfin/" [2025-10-20 17:23:27.497 -04:00] [INF] [7] Jellyfin.Server.Startup: Storage path `"/var/lib/jellyfin/data"` (Fixed) successfully checked with "34.2GB" free which is over the minimum of "2GB". [2025-10-20 17:23:27.498 -04:00] [INF] [7] Jellyfin.Server.Startup: Storage path `"/var/log/jellyfin"` (Fixed) successfully checked with "34.2GB" free which is over the minimum of "512MB". [2025-10-20 17:23:27.498 -04:00] [INF] [7] Jellyfin.Server.Startup: Storage path `"/var/cache/jellyfin"` (Fixed) successfully checked with "34.2GB" free which is over the minimum of "2GB". [2025-10-20 17:23:27.498 -04:00] [INF] [7] Jellyfin.Server.Startup: Storage path `"/var/lib/jellyfin"` (Fixed) successfully checked with "34.2GB" free which is over the minimum of "2GB". [2025-10-20 17:23:27.498 -04:00] [INF] [7] Jellyfin.Server.Startup: Storage path `"/tmp/jellyfin"` (Ram) successfully checked with "7.7GB" free which is over the minimum of "2GB". [2025-10-20 17:23:27.502 -04:00] [INF] [7] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: "/var/cache/jellyfin" [2025-10-20 17:23:27.586 -04:00] [INF] [7] Jellyfin.Database.Providers.Sqlite.SqliteDatabaseProvider: SQLite connection string: "Data Source=/var/lib/jellyfin/data/jellyfin.db;Cache=Default;Pooling=True" [2025-10-20 17:23:27.595 -04:00] [INF] [7] Jellyfin.Database.Providers.Sqlite.SqliteDatabaseProvider: SQLITE connection pragma command set to: "PRAGMA locking_mode=NORMAL; PRAGMA journal_size_limit=134217728; PRAGMA synchronous=1; PRAGMA temp_store=2; " [2025-10-20 17:23:27.597 -04:00] [INF] [7] Jellyfin.Database.Implementations.Locking.NoLockBehavior: The database locking mode has been set to: NoLock. [2025-10-20 17:23:27.651 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Initialise Migration service. [2025-10-20 17:23:27.682 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Old migration style migration.xml detected. Migrate now. [2025-10-20 17:23:28.823 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 9b354818-94d5-4b68-ac49-e35cb85f9d84-"CreateNetworkConfiguration". [2025-10-20 17:23:28.832 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 4fb5c950-1991-11ee-9b4b-0800200c9a66-"MigrateNetworkConfiguration". [2025-10-20 17:23:28.832 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration a6dcacf4-c057-4ef9-80d3-61cef9ddb4f0-"MigrateMusicBrainzTimeout". [2025-10-20 17:23:28.833 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration a8e61960-7726-4450-8f3d-82c12daabbcb-"MigrateEncodingOptions". [2025-10-20 17:23:28.833 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration e73b777d-cd5c-4e71-957a-b86b3660b7cf-"RenameEnableGroupingIntoCollections". [2025-10-20 17:23:28.834 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 4124c2cd-e939-4ffb-9be9-9b311c413638-"DisableTranscodingThrottling". [2025-10-20 17:23:28.834 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration ef103419-8451-40d8-9f34-d1a8e93a1679-"CreateUserLoggingConfigFile". [2025-10-20 17:23:28.834 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 3793eb59-bc8c-456c-8b9f-bd5a62a42978-"MigrateActivityLogDb". [2025-10-20 17:23:28.834 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration acbe17b7-8435-4a83-8b64-6fcf162cb9bd-"RemoveDuplicateExtras". [2025-10-20 17:23:28.835 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration eb58ebee-9514-4b9b-8225-12e1a40020df-"AddDefaultPluginRepository". [2025-10-20 17:23:28.835 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 5c4b82a2-f053-4009-bd05-b6fcad82f14c-"MigrateUserDb". [2025-10-20 17:23:28.835 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 5f86e7f6-d966-4c77-849d-7a7b40b68c4e-"ReaddDefaultPluginRepository". [2025-10-20 17:23:28.835 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 06387815-c3cc-421f-a888-fb5f9992bea8-"MigrateDisplayPreferencesDb". [2025-10-20 17:23:28.836 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration a81f75e0-8f43-416f-a5e8-516ccab4d8cc-"RemoveDownloadImagesInAdvance". [2025-10-20 17:23:28.836 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 5bd72f41-e6f3-4f60-90aa-09869abe0e22-"MigrateAuthenticationDb". [2025-10-20 17:23:28.836 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 615dfa9e-2497-4dbb-a472-61938b752c5b-"FixPlaylistOwner". [2025-10-20 17:23:28.836 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 34a1a1c4-5572-418e-a2f8-32cdfe2668e8-"AddDefaultCastReceivers". [2025-10-20 17:23:28.836 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 852816e0-2712-49a9-9240-c6fc5fcad1a8-"UpdateDefaultPluginRepository". [2025-10-20 17:23:28.837 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration cf6fabc2-9fbe-4933-84a5-ffe52ef22a58-"FixAudioData". [2025-10-20 17:23:28.837 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Migrate migration 96c156a2-7a13-4b3b-a8b8-fb80c94d20c0-"RemoveDuplicatePlaylistChildren". [2025-10-20 17:23:28.837 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Rename old migration.xml to migration.xml.backup [2025-10-20 17:23:28.851 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: There are 0 migrations for stage PreInitialisation. [2025-10-20 17:23:28.857 -04:00] [INF] [7] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: "/var/cache/jellyfin" [2025-10-20 17:23:28.960 -04:00] [INF] [7] Emby.Server.Implementations.ApplicationHost: Loading assemblies [2025-10-20 17:23:28.965 -04:00] [INF] [7] Emby.Server.Implementations.Plugins.PluginManager: Skipping disabled plugin "10.7.0.0" of "Kodi Sync Queue" [2025-10-20 17:23:28.965 -04:00] [INF] [7] Emby.Server.Implementations.Plugins.PluginManager: Skipping disabled plugin "10.7.0.0" of "Trakt" [2025-10-20 17:23:29.005 -04:00] [INF] [7] Jellyfin.Networking.Manager.NetworkManager: Defined LAN subnets: ["::1/128", "fe80::/10", "fc00::/7", "127.0.0.1/8", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"] [2025-10-20 17:23:29.006 -04:00] [INF] [7] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions: [] [2025-10-20 17:23:29.006 -04:00] [INF] [7] Jellyfin.Networking.Manager.NetworkManager: Used LAN subnets: ["::1/128", "fe80::/10", "fc00::/7", "127.0.0.1/8", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"] [2025-10-20 17:23:29.008 -04:00] [INF] [7] Jellyfin.Networking.Manager.NetworkManager: Filtered interface addresses: ["127.0.0.1", "10.75.22.1", "::1", "fd31:aeb1:48df:0:3b14:e643:83d8:7017", "2001:123:4567:0:90cc:a629:cf42:5877", "fe80::a2d4:ede6:5587:6a7a%6"] [2025-10-20 17:23:29.008 -04:00] [INF] [7] Jellyfin.Networking.Manager.NetworkManager: Bind Addresses ["::"] [2025-10-20 17:23:29.008 -04:00] [INF] [7] Jellyfin.Networking.Manager.NetworkManager: Remote IP filter is "Allowlist" [2025-10-20 17:23:29.008 -04:00] [INF] [7] Jellyfin.Networking.Manager.NetworkManager: Filtered subnets: [] [2025-10-20 17:23:29.544 -04:00] [INF] [7] Jellyfin.Database.Providers.Sqlite.SqliteDatabaseProvider: SQLite connection string: "Data Source=/var/lib/jellyfin/data/jellyfin.db;Cache=Default;Pooling=True" [2025-10-20 17:23:29.545 -04:00] [INF] [7] Jellyfin.Database.Providers.Sqlite.SqliteDatabaseProvider: SQLITE connection pragma command set to: "PRAGMA locking_mode=NORMAL; PRAGMA journal_size_limit=134217728; PRAGMA synchronous=1; PRAGMA temp_store=2; " [2025-10-20 17:23:29.545 -04:00] [INF] [7] Jellyfin.Database.Implementations.Locking.NoLockBehavior: The database locking mode has been set to: NoLock. [2025-10-20 17:23:29.550 -04:00] [INF] [7] Main: Prepare system for possible migrations [2025-10-20 17:23:29.584 -04:00] [INF] [7] Main: A migration will attempt to modify the library.db, will attempt to backup the file now. [2025-10-20 17:23:29.586 -04:00] [INF] [7] Main: Backing up "library.db" to "/var/lib/jellyfin/data/library.db.bak5" [2025-10-20 17:23:29.589 -04:00] [INF] [7] Main: "library.db" backed up to "/var/lib/jellyfin/data/library.db.bak5" [2025-10-20 17:23:29.589 -04:00] [INF] [7] Main: "library.db" has been backed up as "/var/lib/jellyfin/data/library.db.bak5" [2025-10-20 17:23:29.589 -04:00] [INF] [7] Main: A migration will attempt to modify the jellyfin.db, will attempt to backup the file now. [2025-10-20 17:23:29.589 -04:00] [INF] [7] Main: Jellyfin database has been backed up as "20251020092329" [2025-10-20 17:23:29.598 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: There are 0 migrations for stage CoreInitialisation. [2025-10-20 17:23:29.599 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20241020103111_LibraryDbMigration" [2025-10-20 17:23:29.805 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20241020103111_LibraryDbMigration" was successfully applied [2025-10-20 17:23:29.805 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20241111131257_AddedCustomDataKey" [2025-10-20 17:23:29.835 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20241111131257_AddedCustomDataKey" was successfully applied [2025-10-20 17:23:29.835 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20241111135439_AddedCustomDataKeyKey" [2025-10-20 17:23:29.900 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20241111135439_AddedCustomDataKeyKey" was successfully applied [2025-10-20 17:23:29.900 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20241112152323_FixAncestorIdConfig" [2025-10-20 17:23:29.955 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20241112152323_FixAncestorIdConfig" was successfully applied [2025-10-20 17:23:29.955 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20241112232041_FixMediaStreams" [2025-10-20 17:23:30.023 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20241112232041_FixMediaStreams" was successfully applied [2025-10-20 17:23:30.023 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20241112234144_FixMediaStreams2" [2025-10-20 17:23:30.081 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20241112234144_FixMediaStreams2" was successfully applied [2025-10-20 17:23:30.081 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20241113133548_EnforceUniqueItemValue" [2025-10-20 17:23:30.111 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20241113133548_EnforceUniqueItemValue" was successfully applied [2025-10-20 17:23:30.111 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250202021306_FixedCollation" [2025-10-20 17:23:30.162 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250202021306_FixedCollation" was successfully applied [2025-10-20 17:23:30.162 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250204092455_MakeStartEndDateNullable" [2025-10-20 17:23:30.220 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250204092455_MakeStartEndDateNullable" was successfully applied [2025-10-20 17:23:30.221 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250214031148_ChannelIdGuid" [2025-10-20 17:23:30.247 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250214031148_ChannelIdGuid" was successfully applied [2025-10-20 17:23:30.247 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250326065026_AddInheritedParentalRatingSubValue" [2025-10-20 17:23:30.278 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250326065026_AddInheritedParentalRatingSubValue" was successfully applied [2025-10-20 17:23:30.279 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250327101120_AddKeyframeData" [2025-10-20 17:23:30.308 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250327101120_AddKeyframeData" was successfully applied [2025-10-20 17:23:30.308 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250327171413_AddHdr10PlusFlag" [2025-10-20 17:23:30.338 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250327171413_AddHdr10PlusFlag" was successfully applied [2025-10-20 17:23:30.338 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250331182844_FixAttachmentMigration" [2025-10-20 17:23:30.390 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250331182844_FixAttachmentMigration" was successfully applied [2025-10-20 17:23:30.390 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250401142247_FixAncestors" [2025-10-20 17:23:30.417 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250401142247_FixAncestors" was successfully applied [2025-10-20 17:23:30.417 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250405075612_FixItemValuesIndices" [2025-10-20 17:23:30.447 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250405075612_FixItemValuesIndices" was successfully applied [2025-10-20 17:23:30.447 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250609115616_DetachUserDataInsteadOfDelete" [2025-10-20 17:23:30.508 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250609115616_DetachUserDataInsteadOfDelete" was successfully applied [2025-10-20 17:23:30.508 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250622170802_BaseItemImageInfoDateModifiedNullable" [2025-10-20 17:23:30.561 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250622170802_BaseItemImageInfoDateModifiedNullable" was successfully applied [2025-10-20 17:23:30.561 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250714044826_ResetJournalMode" [2025-10-20 17:23:30.591 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250714044826_ResetJournalMode" was successfully applied [2025-10-20 17:23:30.591 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250913211637_AddProperParentChildRelationBaseItemWithCascade" [2025-10-20 17:23:30.656 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250913211637_AddProperParentChildRelationBaseItemWithCascade" was successfully applied [2025-10-20 17:23:30.656 -04:00] [INF] [7] InternalDatabaseMigration: Perform migration "20250925203415_ExtendPeopleMapKey" [2025-10-20 17:23:30.718 -04:00] [INF] [7] InternalDatabaseMigration: Migration "20250925203415_ExtendPeopleMapKey" was successfully applied [2025-10-20 17:23:31.378 -04:00] [INF] [7] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "TMDb" "10.11.0.0" [2025-10-20 17:23:31.378 -04:00] [INF] [7] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "Studio Images" "10.11.0.0" [2025-10-20 17:23:31.379 -04:00] [INF] [7] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "OMDb" "10.11.0.0" [2025-10-20 17:23:31.397 -04:00] [INF] [7] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "MusicBrainz" "10.11.0.0" [2025-10-20 17:23:31.397 -04:00] [INF] [7] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "AudioDB" "10.11.0.0" [2025-10-20 17:23:31.449 -04:00] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: There are 11 migrations for stage AppInitialisation. [2025-10-20 17:23:31.449 -04:00] [INF] [7] InternalCodeMigration: Perform migration "20250420193000_MigrateLibraryDbCompatibilityCheck" [2025-10-20 17:23:31.456 -04:00] [INF] [7] InternalCodeMigration: Migration "20250420193000_MigrateLibraryDbCompatibilityCheck" was successfully applied [2025-10-20 17:23:31.456 -04:00] [INF] [7] InternalCodeMigration: Perform migration "20250420200000_MigrateLibraryDb" [2025-10-20 17:23:31.461 -04:00] [INF] [7] Jellyfin.Server.Migrations.Routines.MigrateLibraryDb: Migrating the userdata from library.db may take a while, do not stop Jellyfin. [2025-10-20 17:23:31.506 -04:00] [INF] [7] Jellyfin.Server.Migrations.Routines.MigrateLibraryDb: Start "Cleanup database" [2025-10-20 17:23:31.532 -04:00] [INF] [7] Jellyfin.Server.Migrations.Routines.MigrateLibraryDb: "Cleanup database" took '00:00:00.0254076' [2025-10-20 17:23:31.533 -04:00] [INF] [7] Jellyfin.Server.Migrations.Routines.MigrateLibraryDb: Start "Moving TypedBaseItem" [2025-10-20 17:23:31.533 -04:00] [INF] [7] Jellyfin.Server.Migrations.Routines.MigrateLibraryDb: Start "Loading TypedBaseItems" [2025-10-20 17:23:31.584 -04:00] [INF] [7] Jellyfin.Server.Migrations.Routines.MigrateLibraryDb: "Loading TypedBaseItems" took '00:00:00.0515178' [2025-10-20 17:23:31.584 -04:00] [INF] [7] Jellyfin.Server.Migrations.Routines.MigrateLibraryDb: "Moving TypedBaseItem" took '00:00:00.0519154' [2025-10-20 17:23:31.585 -04:00] [FTL] [7] InternalCodeMigration: Error: "Cannot deserialize unknown type." [2025-10-20 17:23:31.585 -04:00] [ERR] [7] InternalCodeMigration: Migration "20250420200000_MigrateLibraryDb" failed System.InvalidOperationException: Cannot deserialize unknown type. at Jellyfin.Server.Implementations.Item.BaseItemRepository.DeserializeBaseItem(BaseItemEntity baseItemEntity, ILogger logger, IServerApplicationHost appHost, Boolean skipDeserialization) at Jellyfin.Server.Migrations.Routines.MigrateLibraryDb.GetItem(SqliteDataReader reader) at Jellyfin.Server.Migrations.Routines.MigrateLibraryDb.Perform() at Jellyfin.Server.Migrations.Stages.CodeMigration.Perform(IServiceProvider serviceProvider, IStartupLogger logger, CancellationToken cancellationToken) at Jellyfin.Server.Migrations.JellyfinMigrationService.InternalCodeMigration.PerformAsync(IStartupLogger logger) at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider) [2025-10-20 17:23:31.590 -04:00] [INF] [7] InternalCodeMigration: Attempt to rollback librarydb. [2025-10-20 17:23:31.591 -04:00] [INF] [7] InternalCodeMigration: Attempt to rollback JellyfinDb. [2025-10-20 17:23:31.607 -04:00] [FTL] [7] Main: Error while starting server System.InvalidOperationException: Cannot deserialize unknown type. at Jellyfin.Server.Implementations.Item.BaseItemRepository.DeserializeBaseItem(BaseItemEntity baseItemEntity, ILogger logger, IServerApplicationHost appHost, Boolean skipDeserialization) at Jellyfin.Server.Migrations.Routines.MigrateLibraryDb.GetItem(SqliteDataReader reader) at Jellyfin.Server.Migrations.Routines.MigrateLibraryDb.Perform() at Jellyfin.Server.Migrations.Stages.CodeMigration.Perform(IServiceProvider serviceProvider, IStartupLogger logger, CancellationToken cancellationToken) at Jellyfin.Server.Migrations.JellyfinMigrationService.InternalCodeMigration.PerformAsync(IStartupLogger logger) at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider) at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider) at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider) at Jellyfin.Server.Program.StartServer(IServerApplicationPaths appPaths, StartupOptions options, IConfiguration startupConfig) [2025-10-20 17:33:31.624 -04:00] [INF] [35] Main: Running query planner optimizations in the database... This might take a while [2025-10-20 17:33:31.655 -04:00] [INF] [35] Emby.Server.Implementations.ApplicationHost: Disposing "CoreAppHost" [2025-10-20 17:33:31.655 -04:00] [INF] [35] Emby.Server.Implementations.ApplicationHost: Disposing "MusicBrainzArtistProvider" [2025-10-20 17:33:31.655 -04:00] [INF] [35] Emby.Server.Implementations.ApplicationHost: Disposing "MusicBrainzAlbumProvider" [2025-10-20 17:33:31.656 -04:00] [INF] [35] Emby.Server.Implementations.ApplicationHost: Disposing "PluginManager" ``` ### FFmpeg logs ```shell ``` ### Client / Browser logs _No response_ ### Relevant screenshots or videos _No response_ ### Additional information _No response_
OVERLORD added the bug label 2026-02-07 05:00:37 +03:00
Author
Owner

@Dyredhead commented on GitHub (Oct 21, 2025):

I have the exact same issue.
All plugins were disabled and deleted before migration, so it is most likely not them.

logger.txt

@Dyredhead commented on GitHub (Oct 21, 2025): I have the exact same issue. All plugins were disabled and deleted before migration, so it is most likely not them. [logger.txt](https://github.com/user-attachments/files/23011305/logger.txt)
Author
Owner

@isamudaison commented on GitHub (Oct 21, 2025):

+1 , same exact issue (not sure what state everything is currently in, either)

@isamudaison commented on GitHub (Oct 21, 2025): +1 , same exact issue (not sure what state everything is currently in, either)
Author
Owner

@jmjsdev commented on GitHub (Oct 21, 2025):

I lost everything while I was migratiing, same error

@jmjsdev commented on GitHub (Oct 21, 2025): I lost everything while I was migratiing, same error
Author
Owner

@brianjmurrell commented on GitHub (Oct 21, 2025):

I have the exact same issue. All plugins were disabled and deleted before migration, so it is most likely not them.

logger.txt

I'd agree that you have the same issue as me.

@brianjmurrell commented on GitHub (Oct 21, 2025): > I have the exact same issue. All plugins were disabled and deleted before migration, so it is most likely not them. > > [logger.txt](https://github.com/user-attachments/files/23011305/logger.txt) I'd agree that you have the same issue as me.
Author
Owner

@JPVenson commented on GitHub (Oct 21, 2025):

can everyone with the "cannot deserialize unknown type" issue please run this query on the library.db

SELECT type, Count(1) FROM TypedBaseItems GROUP BY type;

The result should look like this:

Emby.Server.Implementations.Playlists.PlaylistsFolder|1
MediaBrowser.Controller.Entities.AggregateFolder|1
MediaBrowser.Controller.Entities.Audio.Audio|12047
MediaBrowser.Controller.Entities.Audio.MusicAlbum|1043
MediaBrowser.Controller.Entities.Audio.MusicArtist|1402
MediaBrowser.Controller.Entities.Audio.MusicGenre|205
MediaBrowser.Controller.Entities.Book|1
MediaBrowser.Controller.Entities.CollectionFolder|11
MediaBrowser.Controller.Entities.Folder|287
MediaBrowser.Controller.Entities.Genre|356
MediaBrowser.Controller.Entities.Movies.BoxSet|139
MediaBrowser.Controller.Entities.Movies.Movie|1110
MediaBrowser.Controller.Entities.Person|44850
MediaBrowser.Controller.Entities.Studio|1688
MediaBrowser.Controller.Entities.TV.Episode|21105
MediaBrowser.Controller.Entities.TV.Season|1223
MediaBrowser.Controller.Entities.TV.Series|321
MediaBrowser.Controller.Entities.Trailer|238
MediaBrowser.Controller.Entities.UserRootFolder|1
MediaBrowser.Controller.Entities.UserView|26
MediaBrowser.Controller.Entities.Video|718
MediaBrowser.Controller.Playlists.Playlist|1
@JPVenson commented on GitHub (Oct 21, 2025): can everyone with the "cannot deserialize unknown type" issue please run this query on the __library.db__ ``` SELECT type, Count(1) FROM TypedBaseItems GROUP BY type; ``` The result should look like this: ``` Emby.Server.Implementations.Playlists.PlaylistsFolder|1 MediaBrowser.Controller.Entities.AggregateFolder|1 MediaBrowser.Controller.Entities.Audio.Audio|12047 MediaBrowser.Controller.Entities.Audio.MusicAlbum|1043 MediaBrowser.Controller.Entities.Audio.MusicArtist|1402 MediaBrowser.Controller.Entities.Audio.MusicGenre|205 MediaBrowser.Controller.Entities.Book|1 MediaBrowser.Controller.Entities.CollectionFolder|11 MediaBrowser.Controller.Entities.Folder|287 MediaBrowser.Controller.Entities.Genre|356 MediaBrowser.Controller.Entities.Movies.BoxSet|139 MediaBrowser.Controller.Entities.Movies.Movie|1110 MediaBrowser.Controller.Entities.Person|44850 MediaBrowser.Controller.Entities.Studio|1688 MediaBrowser.Controller.Entities.TV.Episode|21105 MediaBrowser.Controller.Entities.TV.Season|1223 MediaBrowser.Controller.Entities.TV.Series|321 MediaBrowser.Controller.Entities.Trailer|238 MediaBrowser.Controller.Entities.UserRootFolder|1 MediaBrowser.Controller.Entities.UserView|26 MediaBrowser.Controller.Entities.Video|718 MediaBrowser.Controller.Playlists.Playlist|1 ```
Author
Owner

@brianjmurrell commented on GitHub (Oct 21, 2025):

$ echo 'SELECT type, Count(1) FROM TypedBaseItems GROUP BY type;' | sudo sqlite3 /var/lib/jellyfin/data/library.db
Emby.Server.Implementations.Devices.CameraUploadsFolder|1
Emby.Server.Implementations.Playlists.PlaylistsFolder|1
MediaBrowser.Controller.Collections.ManualCollectionsFolder|1
MediaBrowser.Controller.Entities.AggregateFolder|1
MediaBrowser.Controller.Entities.CollectionFolder|11
MediaBrowser.Controller.Entities.Folder|73
MediaBrowser.Controller.Entities.Genre|114
MediaBrowser.Controller.Entities.Movies.BoxSet|4
MediaBrowser.Controller.Entities.Movies.Movie|135
MediaBrowser.Controller.Entities.Person|5299
MediaBrowser.Controller.Entities.Studio|279
MediaBrowser.Controller.Entities.TV.Episode|1682
MediaBrowser.Controller.Entities.TV.Season|271
MediaBrowser.Controller.Entities.TV.Series|153
MediaBrowser.Controller.Entities.UserRootFolder|1
MediaBrowser.Controller.Entities.UserView|1
MediaBrowser.Controller.Entities.Video|498
MediaBrowser.Controller.LiveTv.LiveTvChannel|2
@brianjmurrell commented on GitHub (Oct 21, 2025): ``` $ echo 'SELECT type, Count(1) FROM TypedBaseItems GROUP BY type;' | sudo sqlite3 /var/lib/jellyfin/data/library.db Emby.Server.Implementations.Devices.CameraUploadsFolder|1 Emby.Server.Implementations.Playlists.PlaylistsFolder|1 MediaBrowser.Controller.Collections.ManualCollectionsFolder|1 MediaBrowser.Controller.Entities.AggregateFolder|1 MediaBrowser.Controller.Entities.CollectionFolder|11 MediaBrowser.Controller.Entities.Folder|73 MediaBrowser.Controller.Entities.Genre|114 MediaBrowser.Controller.Entities.Movies.BoxSet|4 MediaBrowser.Controller.Entities.Movies.Movie|135 MediaBrowser.Controller.Entities.Person|5299 MediaBrowser.Controller.Entities.Studio|279 MediaBrowser.Controller.Entities.TV.Episode|1682 MediaBrowser.Controller.Entities.TV.Season|271 MediaBrowser.Controller.Entities.TV.Series|153 MediaBrowser.Controller.Entities.UserRootFolder|1 MediaBrowser.Controller.Entities.UserView|1 MediaBrowser.Controller.Entities.Video|498 MediaBrowser.Controller.LiveTv.LiveTvChannel|2 ```
Author
Owner

@isamudaison commented on GitHub (Oct 21, 2025):

isamudaison@transcoder:~/jellyfin/jellyfin/config/data$ sqlite3 library.db
SQLite version 3.37.2 2022-01-06 13:25:41
Enter ".help" for usage hints.
sqlite> SELECT type, Count(1) FROM TypedBaseItems GROUP BY type;
Emby.Server.Implementations.Playlists.PlaylistsFolder|1
MediaBrowser.Conroller.LiveTv.LiveTvProgram|1
MediaBrowser.Controller.Entities.AggregateFolder|1
MediaBrowser.Controller.Entities.CollectionFolder|4
MediaBrowser.Controller.Entities.Folder|8211
MediaBrowser.Controller.Entities.Genre|192
MediaBrowser.Controller.Entities.Movies.Movie|8366
MediaBrowser.Controller.Entities.Person|20804
MediaBrowser.Controller.Entities.Studio|9354
MediaBrowser.Controller.Entities.TV.Episode|45200
MediaBrowser.Controller.Entities.TV.Season|3224
MediaBrowser.Controller.Entities.TV.Series|905
MediaBrowser.Controller.Entities.UserRootFolder|1
MediaBrowser.Controller.Entities.UserView|9
MediaBrowser.Controller.Entities.Video|10928
MediaBrowser.Controller.LiveTv.LiveTvChannel|56
MediaBrowser.Controller.LiveTv.LiveTvProgram|136873
MediaBrowser.Controller.Playlists.Playlist|1
MehiaBrowser.Controller.Entities.Person|1
sqlite>
@isamudaison commented on GitHub (Oct 21, 2025): ``` isamudaison@transcoder:~/jellyfin/jellyfin/config/data$ sqlite3 library.db SQLite version 3.37.2 2022-01-06 13:25:41 Enter ".help" for usage hints. sqlite> SELECT type, Count(1) FROM TypedBaseItems GROUP BY type; Emby.Server.Implementations.Playlists.PlaylistsFolder|1 MediaBrowser.Conroller.LiveTv.LiveTvProgram|1 MediaBrowser.Controller.Entities.AggregateFolder|1 MediaBrowser.Controller.Entities.CollectionFolder|4 MediaBrowser.Controller.Entities.Folder|8211 MediaBrowser.Controller.Entities.Genre|192 MediaBrowser.Controller.Entities.Movies.Movie|8366 MediaBrowser.Controller.Entities.Person|20804 MediaBrowser.Controller.Entities.Studio|9354 MediaBrowser.Controller.Entities.TV.Episode|45200 MediaBrowser.Controller.Entities.TV.Season|3224 MediaBrowser.Controller.Entities.TV.Series|905 MediaBrowser.Controller.Entities.UserRootFolder|1 MediaBrowser.Controller.Entities.UserView|9 MediaBrowser.Controller.Entities.Video|10928 MediaBrowser.Controller.LiveTv.LiveTvChannel|56 MediaBrowser.Controller.LiveTv.LiveTvProgram|136873 MediaBrowser.Controller.Playlists.Playlist|1 MehiaBrowser.Controller.Entities.Person|1 sqlite> ```
Author
Owner

@Regular-Snowman commented on GitHub (Oct 21, 2025):

I think I've had the same issue. Updated then had the error text below when I tried to restart the server:

I could be wrong. I'm hardly an expert but to my eye, I don't think your issue is the same as what has been reported here. I think the key error this ticket is reporting is:

[2025-10-20 17:23:31.585 -04:00] [FTL] [7] InternalCodeMigration: Error: "Cannot deserialize unknown type."
[2025-10-20 17:23:31.585 -04:00] [ERR] [7] InternalCodeMigration: Migration "20250420200000_MigrateLibraryDb" failed
System.InvalidOperationException: Cannot deserialize unknown type.
   at Jellyfin.Server.Implementations.Item.BaseItemRepository.DeserializeBaseItem(BaseItemEntity baseItemEntity, ILogger logger, IServerApplicationHost appHost, Boolean skipDeserialization)
   at Jellyfin.Server.Migrations.Routines.MigrateLibraryDb.GetItem(SqliteDataReader reader)
   at Jellyfin.Server.Migrations.Routines.MigrateLibraryDb.Perform()
   at Jellyfin.Server.Migrations.Stages.CodeMigration.Perform(IServiceProvider serviceProvider, IStartupLogger logger, CancellationToken cancellationToken)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.InternalCodeMigration.PerformAsync(IStartupLogger logger)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider)

I don't see that error in your log.

I only tell you this because it might be in your better interest to open a new ticket about it and delete your comment from this ticket, so as not to muddy it up with unrelated errors. With a new ticket, your unrelated error will not get lost when the real issue in this ticket is dealt with.

That's good info, much appreciated. I'll action that now.

@Regular-Snowman commented on GitHub (Oct 21, 2025): > > I think I've had the same issue. Updated then had the error text below when I tried to restart the server: > > I could be wrong. I'm hardly an expert but to my eye, I don't think your issue is the same as what has been reported here. I think the key error this ticket is reporting is: > > ``` > [2025-10-20 17:23:31.585 -04:00] [FTL] [7] InternalCodeMigration: Error: "Cannot deserialize unknown type." > [2025-10-20 17:23:31.585 -04:00] [ERR] [7] InternalCodeMigration: Migration "20250420200000_MigrateLibraryDb" failed > System.InvalidOperationException: Cannot deserialize unknown type. > at Jellyfin.Server.Implementations.Item.BaseItemRepository.DeserializeBaseItem(BaseItemEntity baseItemEntity, ILogger logger, IServerApplicationHost appHost, Boolean skipDeserialization) > at Jellyfin.Server.Migrations.Routines.MigrateLibraryDb.GetItem(SqliteDataReader reader) > at Jellyfin.Server.Migrations.Routines.MigrateLibraryDb.Perform() > at Jellyfin.Server.Migrations.Stages.CodeMigration.Perform(IServiceProvider serviceProvider, IStartupLogger logger, CancellationToken cancellationToken) > at Jellyfin.Server.Migrations.JellyfinMigrationService.InternalCodeMigration.PerformAsync(IStartupLogger logger) > at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider) > ``` > > I don't see that error in your log. > > I only tell you this because it might be in your better interest to open a new ticket about it and delete your comment from this ticket, so as not to muddy it up with unrelated errors. With a new ticket, your unrelated error will not get lost when the real issue in this ticket is dealt with. That's good info, much appreciated. I'll action that now.
Author
Owner

@JPVenson commented on GitHub (Oct 21, 2025):

Ok strange.

this script should clean those items up. First select those that are not currently officially supported:

SELECT * FROM TypedBaseItems WHERE type NOT IN ('Emby.Server.Implementations.Playlists.PlaylistsFolder', 'MediaBrowser.Controller.Playlists.Playlist', 'MediaBrowser.Controller.LiveTv.LiveTvChannel', 'MediaBrowser.Controller.LiveTv.LiveTvProgram', 'MediaBrowser.Controller.Entities.AggregateFolder', 'MediaBrowser.Controller.Entities.AudioBook', 'MediaBrowser.Controller.Entities.BaseItem', 'MediaBrowser.Controller.Entities.BasePluginFolder', 'MediaBrowser.Controller.Entities.Book', 'MediaBrowser.Controller.Entities.CollectionFolder', 'MediaBrowser.Controller.Entities.Folder', 'MediaBrowser.Controller.Entities.Genre', 'MediaBrowser.Controller.Entities.MusicVideo', 'MediaBrowser.Controller.Entities.Person', 'MediaBrowser.Controller.Entities.Photo', 'MediaBrowser.Controller.Entities.PhotoAlbum', 'MediaBrowser.Controller.Entities.Studio', 'MediaBrowser.Controller.Entities.Trailer', 'MediaBrowser.Controller.Entities.UserRootFolder', 'MediaBrowser.Controller.Entities.UserView', 'MediaBrowser.Controller.Entities.Video', 'MediaBrowser.Controller.Entities.Year', 'MediaBrowser.Controller.Entities.TV.Episode', 'MediaBrowser.Controller.Entities.TV.Season', 'MediaBrowser.Controller.Entities.TV.Series', 'MediaBrowser.Controller.Entities.Movies.BoxSet', 'MediaBrowser.Controller.Entities.Movies.Movie', 'MediaBrowser.Controller.Entities.Audio.Audio', 'MediaBrowser.Controller.Entities.Audio.MusicAlbum', 'MediaBrowser.Controller.Entities.Audio.MusicArtist', 'MediaBrowser.Controller.Entities.Audio.MusicGenre', 'MediaBrowser.Controller.Channels.Channel');

if you are satisfied delete them or depending on your own capabilities you can try to rename them according to the list:

DELETE FROM TypedBaseItems WHERE type NOT IN ('Emby.Server.Implementations.Playlists.PlaylistsFolder', 'MediaBrowser.Controller.Playlists.Playlist', 'MediaBrowser.Controller.LiveTv.LiveTvChannel', 'MediaBrowser.Controller.LiveTv.LiveTvProgram', 'MediaBrowser.Controller.Entities.AggregateFolder', 'MediaBrowser.Controller.Entities.AudioBook', 'MediaBrowser.Controller.Entities.BaseItem', 'MediaBrowser.Controller.Entities.BasePluginFolder', 'MediaBrowser.Controller.Entities.Book', 'MediaBrowser.Controller.Entities.CollectionFolder', 'MediaBrowser.Controller.Entities.Folder', 'MediaBrowser.Controller.Entities.Genre', 'MediaBrowser.Controller.Entities.MusicVideo', 'MediaBrowser.Controller.Entities.Person', 'MediaBrowser.Controller.Entities.Photo', 'MediaBrowser.Controller.Entities.PhotoAlbum', 'MediaBrowser.Controller.Entities.Studio', 'MediaBrowser.Controller.Entities.Trailer', 'MediaBrowser.Controller.Entities.UserRootFolder', 'MediaBrowser.Controller.Entities.UserView', 'MediaBrowser.Controller.Entities.Video', 'MediaBrowser.Controller.Entities.Year', 'MediaBrowser.Controller.Entities.TV.Episode', 'MediaBrowser.Controller.Entities.TV.Season', 'MediaBrowser.Controller.Entities.TV.Series', 'MediaBrowser.Controller.Entities.Movies.BoxSet', 'MediaBrowser.Controller.Entities.Movies.Movie', 'MediaBrowser.Controller.Entities.Audio.Audio', 'MediaBrowser.Controller.Entities.Audio.MusicAlbum', 'MediaBrowser.Controller.Entities.Audio.MusicArtist', 'MediaBrowser.Controller.Entities.Audio.MusicGenre', 'MediaBrowser.Controller.Channels.Channel');
@JPVenson commented on GitHub (Oct 21, 2025): Ok strange. this script should clean those items up. First select those that are not currently officially supported: ```sql SELECT * FROM TypedBaseItems WHERE type NOT IN ('Emby.Server.Implementations.Playlists.PlaylistsFolder', 'MediaBrowser.Controller.Playlists.Playlist', 'MediaBrowser.Controller.LiveTv.LiveTvChannel', 'MediaBrowser.Controller.LiveTv.LiveTvProgram', 'MediaBrowser.Controller.Entities.AggregateFolder', 'MediaBrowser.Controller.Entities.AudioBook', 'MediaBrowser.Controller.Entities.BaseItem', 'MediaBrowser.Controller.Entities.BasePluginFolder', 'MediaBrowser.Controller.Entities.Book', 'MediaBrowser.Controller.Entities.CollectionFolder', 'MediaBrowser.Controller.Entities.Folder', 'MediaBrowser.Controller.Entities.Genre', 'MediaBrowser.Controller.Entities.MusicVideo', 'MediaBrowser.Controller.Entities.Person', 'MediaBrowser.Controller.Entities.Photo', 'MediaBrowser.Controller.Entities.PhotoAlbum', 'MediaBrowser.Controller.Entities.Studio', 'MediaBrowser.Controller.Entities.Trailer', 'MediaBrowser.Controller.Entities.UserRootFolder', 'MediaBrowser.Controller.Entities.UserView', 'MediaBrowser.Controller.Entities.Video', 'MediaBrowser.Controller.Entities.Year', 'MediaBrowser.Controller.Entities.TV.Episode', 'MediaBrowser.Controller.Entities.TV.Season', 'MediaBrowser.Controller.Entities.TV.Series', 'MediaBrowser.Controller.Entities.Movies.BoxSet', 'MediaBrowser.Controller.Entities.Movies.Movie', 'MediaBrowser.Controller.Entities.Audio.Audio', 'MediaBrowser.Controller.Entities.Audio.MusicAlbum', 'MediaBrowser.Controller.Entities.Audio.MusicArtist', 'MediaBrowser.Controller.Entities.Audio.MusicGenre', 'MediaBrowser.Controller.Channels.Channel'); ``` if you are satisfied delete them or depending on your own capabilities you can try to rename them according to the list: ```sql DELETE FROM TypedBaseItems WHERE type NOT IN ('Emby.Server.Implementations.Playlists.PlaylistsFolder', 'MediaBrowser.Controller.Playlists.Playlist', 'MediaBrowser.Controller.LiveTv.LiveTvChannel', 'MediaBrowser.Controller.LiveTv.LiveTvProgram', 'MediaBrowser.Controller.Entities.AggregateFolder', 'MediaBrowser.Controller.Entities.AudioBook', 'MediaBrowser.Controller.Entities.BaseItem', 'MediaBrowser.Controller.Entities.BasePluginFolder', 'MediaBrowser.Controller.Entities.Book', 'MediaBrowser.Controller.Entities.CollectionFolder', 'MediaBrowser.Controller.Entities.Folder', 'MediaBrowser.Controller.Entities.Genre', 'MediaBrowser.Controller.Entities.MusicVideo', 'MediaBrowser.Controller.Entities.Person', 'MediaBrowser.Controller.Entities.Photo', 'MediaBrowser.Controller.Entities.PhotoAlbum', 'MediaBrowser.Controller.Entities.Studio', 'MediaBrowser.Controller.Entities.Trailer', 'MediaBrowser.Controller.Entities.UserRootFolder', 'MediaBrowser.Controller.Entities.UserView', 'MediaBrowser.Controller.Entities.Video', 'MediaBrowser.Controller.Entities.Year', 'MediaBrowser.Controller.Entities.TV.Episode', 'MediaBrowser.Controller.Entities.TV.Season', 'MediaBrowser.Controller.Entities.TV.Series', 'MediaBrowser.Controller.Entities.Movies.BoxSet', 'MediaBrowser.Controller.Entities.Movies.Movie', 'MediaBrowser.Controller.Entities.Audio.Audio', 'MediaBrowser.Controller.Entities.Audio.MusicAlbum', 'MediaBrowser.Controller.Entities.Audio.MusicArtist', 'MediaBrowser.Controller.Entities.Audio.MusicGenre', 'MediaBrowser.Controller.Channels.Channel'); ```
Author
Owner

@isamudaison commented on GitHub (Oct 21, 2025):

After I stopped the docker container my library DB was corrupted (shocker) so I just replaced library.db with a known good copy, but that caused a startup failure for to missing table, so removed library.db all together and now I'm getting this error:


System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'LoggerFactory'.
   at Microsoft.Extensions.Logging.LoggerFactory.CreateLogger(String categoryName)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider)
   at Jellyfin.Server.Program.ApplyStartupMigrationAsync(ServerApplicationPaths appPaths, IConfiguration startupConfig)
   at Jellyfin.Server.Program.StartApp(StartupOptions options)
   at Jellyfin.Server.Program.<Main>(String[] args)
Unhandled exception. System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'LoggerFactory'.
   at Microsoft.Extensions.Logging.LoggerFactory.CreateLogger(String categoryName)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider)
   at Jellyfin.Server.Program.ApplyStartupMigrationAsync(ServerApplicationPaths appPaths, IConfiguration startupConfig)
   at Jellyfin.Server.Program.StartApp(StartupOptions options)
   at Jellyfin.Server.Program.<Main>(String[] args)
@isamudaison commented on GitHub (Oct 21, 2025): After I stopped the docker container my library DB was corrupted (shocker) so I just replaced library.db with a known good copy, but that caused a startup failure for to missing table, so removed library.db all together and now I'm getting this error: ``` System.ObjectDisposedException: Cannot access a disposed object. Object name: 'LoggerFactory'. at Microsoft.Extensions.Logging.LoggerFactory.CreateLogger(String categoryName) at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider) at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider) at Jellyfin.Server.Program.ApplyStartupMigrationAsync(ServerApplicationPaths appPaths, IConfiguration startupConfig) at Jellyfin.Server.Program.StartApp(StartupOptions options) at Jellyfin.Server.Program.<Main>(String[] args) Unhandled exception. System.ObjectDisposedException: Cannot access a disposed object. Object name: 'LoggerFactory'. at Microsoft.Extensions.Logging.LoggerFactory.CreateLogger(String categoryName) at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider) at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider) at Jellyfin.Server.Program.ApplyStartupMigrationAsync(ServerApplicationPaths appPaths, IConfiguration startupConfig) at Jellyfin.Server.Program.StartApp(StartupOptions options) at Jellyfin.Server.Program.<Main>(String[] args) ```
Author
Owner

@brianjmurrell commented on GitHub (Oct 21, 2025):

if you are satisfied delete them or depending on your own capabilities you can try to rename them according to the list:

And then do what? Try to start the Jellyfin server again? It's expected to be able to resume the migrations and finally start cleanly after the above removals?

@brianjmurrell commented on GitHub (Oct 21, 2025): > if you are satisfied delete them or depending on your own capabilities you can try to rename them according to the list: And then do what? Try to start the Jellyfin server again? It's expected to be able to resume the migrations and finally start cleanly after the above removals?
Author
Owner

@JPVenson commented on GitHub (Oct 21, 2025):

@brianjmurrell you should restore from the backup you made pre-migration, apply the query while the 10.11 server is not yet started and then attempt the migration

@JPVenson commented on GitHub (Oct 21, 2025): @brianjmurrell you should restore from the backup you made pre-migration, apply the query while the 10.11 server is not yet started and then attempt the migration
Author
Owner

@Dyredhead commented on GitHub (Oct 22, 2025):

Ok strange.

this script should clean those items up. First select those that are not currently officially supported:

SELECT * FROM TypedBaseItems WHERE type NOT IN ('Emby.Server.Implementations.Playlists.PlaylistsFolder', 'MediaBrowser.Controller.Playlists.Playlist', 'MediaBrowser.Controller.LiveTv.LiveTvChannel', 'MediaBrowser.Controller.LiveTv.LiveTvProgram', 'MediaBrowser.Controller.Entities.AggregateFolder', 'MediaBrowser.Controller.Entities.AudioBook', 'MediaBrowser.Controller.Entities.BaseItem', 'MediaBrowser.Controller.Entities.BasePluginFolder', 'MediaBrowser.Controller.Entities.Book', 'MediaBrowser.Controller.Entities.CollectionFolder', 'MediaBrowser.Controller.Entities.Folder', 'MediaBrowser.Controller.Entities.Genre', 'MediaBrowser.Controller.Entities.MusicVideo', 'MediaBrowser.Controller.Entities.Person', 'MediaBrowser.Controller.Entities.Photo', 'MediaBrowser.Controller.Entities.PhotoAlbum', 'MediaBrowser.Controller.Entities.Studio', 'MediaBrowser.Controller.Entities.Trailer', 'MediaBrowser.Controller.Entities.UserRootFolder', 'MediaBrowser.Controller.Entities.UserView', 'MediaBrowser.Controller.Entities.Video', 'MediaBrowser.Controller.Entities.Year', 'MediaBrowser.Controller.Entities.TV.Episode', 'MediaBrowser.Controller.Entities.TV.Season', 'MediaBrowser.Controller.Entities.TV.Series', 'MediaBrowser.Controller.Entities.Movies.BoxSet', 'MediaBrowser.Controller.Entities.Movies.Movie', 'MediaBrowser.Controller.Entities.Audio.Audio', 'MediaBrowser.Controller.Entities.Audio.MusicAlbum', 'MediaBrowser.Controller.Entities.Audio.MusicArtist', 'MediaBrowser.Controller.Entities.Audio.MusicGenre', 'MediaBrowser.Controller.Channels.Channel');

if you are satisfied delete them or depending on your own capabilities you can try to rename them according to the list:

DELETE FROM TypedBaseItems WHERE type NOT IN ('Emby.Server.Implementations.Playlists.PlaylistsFolder', 'MediaBrowser.Controller.Playlists.Playlist', 'MediaBrowser.Controller.LiveTv.LiveTvChannel', 'MediaBrowser.Controller.LiveTv.LiveTvProgram', 'MediaBrowser.Controller.Entities.AggregateFolder', 'MediaBrowser.Controller.Entities.AudioBook', 'MediaBrowser.Controller.Entities.BaseItem', 'MediaBrowser.Controller.Entities.BasePluginFolder', 'MediaBrowser.Controller.Entities.Book', 'MediaBrowser.Controller.Entities.CollectionFolder', 'MediaBrowser.Controller.Entities.Folder', 'MediaBrowser.Controller.Entities.Genre', 'MediaBrowser.Controller.Entities.MusicVideo', 'MediaBrowser.Controller.Entities.Person', 'MediaBrowser.Controller.Entities.Photo', 'MediaBrowser.Controller.Entities.PhotoAlbum', 'MediaBrowser.Controller.Entities.Studio', 'MediaBrowser.Controller.Entities.Trailer', 'MediaBrowser.Controller.Entities.UserRootFolder', 'MediaBrowser.Controller.Entities.UserView', 'MediaBrowser.Controller.Entities.Video', 'MediaBrowser.Controller.Entities.Year', 'MediaBrowser.Controller.Entities.TV.Episode', 'MediaBrowser.Controller.Entities.TV.Season', 'MediaBrowser.Controller.Entities.TV.Series', 'MediaBrowser.Controller.Entities.Movies.BoxSet', 'MediaBrowser.Controller.Entities.Movies.Movie', 'MediaBrowser.Controller.Entities.Audio.Audio', 'MediaBrowser.Controller.Entities.Audio.MusicAlbum', 'MediaBrowser.Controller.Entities.Audio.MusicArtist', 'MediaBrowser.Controller.Entities.Audio.MusicGenre', 'MediaBrowser.Controller.Channels.Channel');

This worked for me! Thank you!!!

@Dyredhead commented on GitHub (Oct 22, 2025): > Ok strange. > > this script should clean those items up. First select those that are not currently officially supported: > > SELECT * FROM TypedBaseItems WHERE type NOT IN ('Emby.Server.Implementations.Playlists.PlaylistsFolder', 'MediaBrowser.Controller.Playlists.Playlist', 'MediaBrowser.Controller.LiveTv.LiveTvChannel', 'MediaBrowser.Controller.LiveTv.LiveTvProgram', 'MediaBrowser.Controller.Entities.AggregateFolder', 'MediaBrowser.Controller.Entities.AudioBook', 'MediaBrowser.Controller.Entities.BaseItem', 'MediaBrowser.Controller.Entities.BasePluginFolder', 'MediaBrowser.Controller.Entities.Book', 'MediaBrowser.Controller.Entities.CollectionFolder', 'MediaBrowser.Controller.Entities.Folder', 'MediaBrowser.Controller.Entities.Genre', 'MediaBrowser.Controller.Entities.MusicVideo', 'MediaBrowser.Controller.Entities.Person', 'MediaBrowser.Controller.Entities.Photo', 'MediaBrowser.Controller.Entities.PhotoAlbum', 'MediaBrowser.Controller.Entities.Studio', 'MediaBrowser.Controller.Entities.Trailer', 'MediaBrowser.Controller.Entities.UserRootFolder', 'MediaBrowser.Controller.Entities.UserView', 'MediaBrowser.Controller.Entities.Video', 'MediaBrowser.Controller.Entities.Year', 'MediaBrowser.Controller.Entities.TV.Episode', 'MediaBrowser.Controller.Entities.TV.Season', 'MediaBrowser.Controller.Entities.TV.Series', 'MediaBrowser.Controller.Entities.Movies.BoxSet', 'MediaBrowser.Controller.Entities.Movies.Movie', 'MediaBrowser.Controller.Entities.Audio.Audio', 'MediaBrowser.Controller.Entities.Audio.MusicAlbum', 'MediaBrowser.Controller.Entities.Audio.MusicArtist', 'MediaBrowser.Controller.Entities.Audio.MusicGenre', 'MediaBrowser.Controller.Channels.Channel'); > > if you are satisfied delete them or depending on your own capabilities you can try to rename them according to the list: > > DELETE FROM TypedBaseItems WHERE type NOT IN ('Emby.Server.Implementations.Playlists.PlaylistsFolder', 'MediaBrowser.Controller.Playlists.Playlist', 'MediaBrowser.Controller.LiveTv.LiveTvChannel', 'MediaBrowser.Controller.LiveTv.LiveTvProgram', 'MediaBrowser.Controller.Entities.AggregateFolder', 'MediaBrowser.Controller.Entities.AudioBook', 'MediaBrowser.Controller.Entities.BaseItem', 'MediaBrowser.Controller.Entities.BasePluginFolder', 'MediaBrowser.Controller.Entities.Book', 'MediaBrowser.Controller.Entities.CollectionFolder', 'MediaBrowser.Controller.Entities.Folder', 'MediaBrowser.Controller.Entities.Genre', 'MediaBrowser.Controller.Entities.MusicVideo', 'MediaBrowser.Controller.Entities.Person', 'MediaBrowser.Controller.Entities.Photo', 'MediaBrowser.Controller.Entities.PhotoAlbum', 'MediaBrowser.Controller.Entities.Studio', 'MediaBrowser.Controller.Entities.Trailer', 'MediaBrowser.Controller.Entities.UserRootFolder', 'MediaBrowser.Controller.Entities.UserView', 'MediaBrowser.Controller.Entities.Video', 'MediaBrowser.Controller.Entities.Year', 'MediaBrowser.Controller.Entities.TV.Episode', 'MediaBrowser.Controller.Entities.TV.Season', 'MediaBrowser.Controller.Entities.TV.Series', 'MediaBrowser.Controller.Entities.Movies.BoxSet', 'MediaBrowser.Controller.Entities.Movies.Movie', 'MediaBrowser.Controller.Entities.Audio.Audio', 'MediaBrowser.Controller.Entities.Audio.MusicAlbum', 'MediaBrowser.Controller.Entities.Audio.MusicArtist', 'MediaBrowser.Controller.Entities.Audio.MusicGenre', 'MediaBrowser.Controller.Channels.Channel'); This worked for me! Thank you!!!
Author
Owner

@brianjmurrell commented on GitHub (Oct 22, 2025):

This worked for me! Thank you!!!

That's great to know!

I guess the question that remains is will this be fixed in the JF migrations or is having to do this manual, external table fix-up always going to remain a manual, external operation that nobody will know they need to do until their upgrade fails and they go hunting for the reason?

@brianjmurrell commented on GitHub (Oct 22, 2025): > This worked for me! Thank you!!! That's great to know! I guess the question that remains is will this be fixed in the JF migrations or is having to do this manual, external table fix-up always going to remain a manual, external operation that nobody will know they need to do until their upgrade fails and they go hunting for the reason?
Author
Owner

@JPVenson commented on GitHub (Oct 22, 2025):

this is soly the result of us enforcing stricter limits and as the blog post said should be a on-off thing. We are trying to clean up a lot of emby legacy stuff here that was littering the database (which all of that is esp the Emby.Server.Implementations.Devices.CameraUploadsFolder one which never even existed in jellyfin and was removed before we even forked). Nobody reported issues with this during the 6 months of RCs and no team member has that old stuff in their DBs so its impossible for us to predict. Thats why we are cleaning up what we can and enforcing a better schema, to improve stability for the long run.

@JPVenson commented on GitHub (Oct 22, 2025): this is soly the result of us enforcing stricter limits and as the blog post said should be a on-off thing. We are trying to clean up a lot of emby legacy stuff here that was littering the database (which all of that is esp the `Emby.Server.Implementations.Devices.CameraUploadsFolder` one which never even existed in jellyfin and was removed before we even forked). Nobody reported issues with this during the 6 months of RCs and no team member has that old stuff in their DBs so its impossible for us to predict. Thats why we are cleaning up what we can and enforcing a better schema, to improve stability for the long run.
Author
Owner

@brianjmurrell commented on GitHub (Oct 22, 2025):

@JPVenson Fair enough. But clearly some number of users do have some of this legacy stuff in their databases. Maybe not a trivial number of users given how many were hit in the first few days of the release being available. Do you think that the upgrade/migration/etc. should be what is doing this kind of cleanup and not users, only once they have broken their systems with the upgrade that does not handle their data?

I understand it was impossible to predict, but now that it's known should a 10.11.1 release be made to handle this?

@brianjmurrell commented on GitHub (Oct 22, 2025): @JPVenson Fair enough. But clearly some number of users do have some of this legacy stuff in their databases. Maybe not a trivial number of users given how many were hit in the first few days of the release being available. Do you think that the upgrade/migration/etc. should be what is doing this kind of cleanup and not users, only once they have broken their systems with the upgrade that does not handle their data? I understand it was impossible to predict, but now that it's known should a 10.11.1 release be made to handle this?
Author
Owner

@Dyredhead commented on GitHub (Oct 22, 2025):

@JPVenson I would leave this as a manual fix, but I would add a note in the migration logs that if this specific migration fails, to check this GitHub issue for a possible solution.

@Dyredhead commented on GitHub (Oct 22, 2025): @JPVenson I would leave this as a manual fix, but I would add a note in the migration logs that if this specific migration fails, to check this GitHub issue for a possible solution.
Author
Owner

@brianjmurrell commented on GitHub (Oct 22, 2025):

@JPVenson I would leave this as a manual fix, but I would add a note in the migration logs that if this specific migration fails, to check this GitHub issue for a possible solution.

Why? What advantage do you see to leaving it as manual so that the migration breaks people's systems, leaving them having to hunt for a solution. Hopefully they actually did a database backup since it seems that the only way to resolve this issue is to restore from backup and try again.

This all just makes JF look fragile and unstable IMO. It's going to scare people away from doing upgrades.

@brianjmurrell commented on GitHub (Oct 22, 2025): > [@JPVenson](https://github.com/JPVenson) I would leave this as a manual fix, but I would add a note in the migration logs that if this specific migration fails, to check this GitHub issue for a possible solution. Why? What advantage do you see to leaving it as manual so that the migration breaks people's systems, leaving them having to hunt for a solution. Hopefully they actually did a database backup since it seems that the only way to resolve this issue is to restore from backup and try again. This all just makes JF look fragile and unstable IMO. It's going to scare people away from doing upgrades.
Author
Owner

@Dyredhead commented on GitHub (Oct 22, 2025):

@JPVenson I would leave this as a manual fix, but I would add a note in the migration logs that if this specific migration fails, to check this GitHub issue for a possible solution.

Why? What advantage do you see to leaving it as manual so that the migration breaks people's systems, leaving them having to hunt for a solution. Hopefully they actually did a database backup since it seems that the only way to resolve this issue is to restore from backup and try again.

This all just makes JF look fragile and unstable IMO. It's going to scare people away from doing upgrades.

Unless I'm misunderstanding what the solution is doing, its deleting data which does not fit into the new schema, not simply moving it around like what the migration was supposed to do. Because of this, I don't think jellyfin should be automatically applying a migration that deletes data. The user should absolutely manually opt in to such a thing.

You will not have to hunt for anything, if the solution is simply linked in the logs if the specific issue comes up.

If I am mistaken, and this solution does do what was initially intended by the migration, then it absolutely should be built into the migration.

@Dyredhead commented on GitHub (Oct 22, 2025): > > [@JPVenson](https://github.com/JPVenson) I would leave this as a manual fix, but I would add a note in the migration logs that if this specific migration fails, to check this GitHub issue for a possible solution. > > Why? What advantage do you see to leaving it as manual so that the migration breaks people's systems, leaving them having to hunt for a solution. Hopefully they actually did a database backup since it seems that the only way to resolve this issue is to restore from backup and try again. > > This all just makes JF look fragile and unstable IMO. It's going to scare people away from doing upgrades. Unless I'm misunderstanding what the solution is doing, its deleting data which does not fit into the new schema, not simply moving it around like what the migration was supposed to do. Because of this, I don't think jellyfin should be automatically applying a migration that deletes data. The user should absolutely manually opt in to such a thing. You will not have to hunt for anything, if the solution is simply linked in the logs if the specific issue comes up. If I am mistaken, and this solution does do what was initially intended by the migration, then it absolutely should be built into the migration.
Author
Owner

@brianjmurrell commented on GitHub (Oct 22, 2025):

I would argue if that some kind of extraneous data is unused, useless, unsupported and actually causes breakage (as seems to be the case here) when it exists then the migration should take care of removing it.

@brianjmurrell commented on GitHub (Oct 22, 2025): I would argue if that some kind of extraneous data is unused, useless, unsupported and actually causes breakage (as seems to be the case here) when it exists then the migration should take care of removing it.
Author
Owner

@brianjmurrell commented on GitHub (Oct 25, 2025):

@brianjmurrell you should restore from the backup you made pre-migration, apply the query while the 10.11 server is not yet started and then attempt the migration

I do backups daily. But which files am I restoring from backup? I notice that both library.db and jellyfin.db both have the same modification time stamp which was the time of the migration failure:

-rw-r--r--. 1 jellyfin jellyfin 31072256 Oct 20 17:23 library.db
-rw-r--r--. 1 jellyfin jellyfin  5279744 Oct 20 17:33 jellyfin.db

Does that mean that both of those files should be restored from backup?

Interestingly I am also noticing:

$ sudo ls -ltar /var/lib/jellyfin/data/SQLiteBackups
total 5156
-rw-r--r--. 1 jellyfin jellyfin 5279744 Oct 20 13:41 20251020092329_jellyfin.db

But no library.db backup in that dir. ☹️ Pity.

I have also discovered through trial-and-error and referring to the three tickets from this search result that one also has to restore /etc/jellyfin/migrations.xml before retrying the upgrade.

@brianjmurrell commented on GitHub (Oct 25, 2025): > [@brianjmurrell](https://github.com/brianjmurrell) you should restore from the backup you made pre-migration, apply the query while the 10.11 server is not yet started and then attempt the migration I do backups daily. But which files am I restoring from backup? I notice that both `library.db` and `jellyfin.db` both have the same modification time stamp which was the time of the migration failure: ``` -rw-r--r--. 1 jellyfin jellyfin 31072256 Oct 20 17:23 library.db -rw-r--r--. 1 jellyfin jellyfin 5279744 Oct 20 17:33 jellyfin.db ``` Does that mean that both of those files should be restored from backup? Interestingly I am also noticing: ``` $ sudo ls -ltar /var/lib/jellyfin/data/SQLiteBackups total 5156 -rw-r--r--. 1 jellyfin jellyfin 5279744 Oct 20 13:41 20251020092329_jellyfin.db ``` But no `library.db` backup in that dir. ☹️ Pity. I have also discovered through trial-and-error and referring to the three tickets from this [search result](https://github.com/jellyfin/jellyfin/issues?q=is%3Aissue%20state%3Aopen%20no%20such%20table%3A%20ActivityLog) that one also has to restore `/etc/jellyfin/migrations.xml` before retrying the upgrade.
Author
Owner

@frzifus commented on GitHub (Oct 28, 2025):

After I stopped the docker container my library DB was corrupted (shocker) so I just replaced library.db with a known good copy, but that caused a startup failure for to missing table, so removed library.db all together and now I'm getting this error:


System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'LoggerFactory'.
   at Microsoft.Extensions.Logging.LoggerFactory.CreateLogger(String categoryName)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider)
   at Jellyfin.Server.Program.ApplyStartupMigrationAsync(ServerApplicationPaths appPaths, IConfiguration startupConfig)
   at Jellyfin.Server.Program.StartApp(StartupOptions options)
   at Jellyfin.Server.Program.<Main>(String[] args)
Unhandled exception. System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'LoggerFactory'.
   at Microsoft.Extensions.Logging.LoggerFactory.CreateLogger(String categoryName)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider)
   at Jellyfin.Server.Program.ApplyStartupMigrationAsync(ServerApplicationPaths appPaths, IConfiguration startupConfig)
   at Jellyfin.Server.Program.StartApp(StartupOptions options)
   at Jellyfin.Server.Program.<Main>(String[] args)

Same here. Could you resolve this @isamudaison?

@frzifus commented on GitHub (Oct 28, 2025): > After I stopped the docker container my library DB was corrupted (shocker) so I just replaced library.db with a known good copy, but that caused a startup failure for to missing table, so removed library.db all together and now I'm getting this error: > > ``` > > System.ObjectDisposedException: Cannot access a disposed object. > Object name: 'LoggerFactory'. > at Microsoft.Extensions.Logging.LoggerFactory.CreateLogger(String categoryName) > at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider) > at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider) > at Jellyfin.Server.Program.ApplyStartupMigrationAsync(ServerApplicationPaths appPaths, IConfiguration startupConfig) > at Jellyfin.Server.Program.StartApp(StartupOptions options) > at Jellyfin.Server.Program.<Main>(String[] args) > Unhandled exception. System.ObjectDisposedException: Cannot access a disposed object. > Object name: 'LoggerFactory'. > at Microsoft.Extensions.Logging.LoggerFactory.CreateLogger(String categoryName) > at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider) > at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider) > at Jellyfin.Server.Program.ApplyStartupMigrationAsync(ServerApplicationPaths appPaths, IConfiguration startupConfig) > at Jellyfin.Server.Program.StartApp(StartupOptions options) > at Jellyfin.Server.Program.<Main>(String[] args) > ``` Same here. Could you resolve this @isamudaison?
Author
Owner

@xBelladonna commented on GitHub (Nov 7, 2025):

The migration seems to have FUBAR'd my library with the following error:

System.InvalidOperationException: The instance of entity type 'UserData' cannot be tracked because another instance with the same key value for {'ItemId', 'UserId', 'CustomDataKey'} is already being tracked. When attaching existing entities, ensure that only one entity instance with a given key value is attached. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the conflicting key values.
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.IdentityMap`1.ThrowIdentityConflict(InternalEntityEntry entry)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.IdentityMap`1.Add(TKey key, InternalEntityEntry entry, Boolean updateDuplicate)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.StartTracking(InternalEntityEntry entry)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntry.SetEntityState(EntityState oldState, EntityState newState, Boolean acceptChanges, Boolean modifyProperties)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.EntityGraphAttacher.PaintAction(EntityEntryGraphNode`1 node)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.EntityEntryGraphIterator.TraverseGraph[TState](EntityEntryGraphNode`1 node, Func`2 handleNode)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.EntityGraphAttacher.AttachGraph(InternalEntityEntry rootEntry, EntityState targetState, EntityState storeGeneratedWithKeySetTargetState, Boolean forceStateWhenUnknownKey)
   at Microsoft.EntityFrameworkCore.Internal.InternalDbSet`1.Add(TEntity entity)
   at Jellyfin.Server.Migrations.Routines.MigrateLibraryDb.Perform()
   at Jellyfin.Server.Migrations.Stages.CodeMigration.Perform(IServiceProvider serviceProvider, IStartupLogger logger, CancellationToken cancellationToken)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.InternalCodeMigration.PerformAsync(IStartupLogger logger)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider)
[21:31:19] [INF] [9] InternalCodeMigration: Attempt to rollback librarydb.
[21:31:19] [INF] [9] InternalCodeMigration: Attempt to rollback JellyfinDb.
[21:31:19] [FTL] [9] Main: Error while starting server

I tried the same trick with replacing the library.db with a known good copy but met with the same fate as did
@frzifus even after removing it, cannot re-add my libraries.

Just going to set up Jellyfin again from scratch like I'm reinstalling Windows because it's normal.

@xBelladonna commented on GitHub (Nov 7, 2025): The migration seems to have FUBAR'd my library with the following error: ``` System.InvalidOperationException: The instance of entity type 'UserData' cannot be tracked because another instance with the same key value for {'ItemId', 'UserId', 'CustomDataKey'} is already being tracked. When attaching existing entities, ensure that only one entity instance with a given key value is attached. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the conflicting key values. at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.IdentityMap`1.ThrowIdentityConflict(InternalEntityEntry entry) at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.IdentityMap`1.Add(TKey key, InternalEntityEntry entry, Boolean updateDuplicate) at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.StartTracking(InternalEntityEntry entry) at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.InternalEntityEntry.SetEntityState(EntityState oldState, EntityState newState, Boolean acceptChanges, Boolean modifyProperties) at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.EntityGraphAttacher.PaintAction(EntityEntryGraphNode`1 node) at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.EntityEntryGraphIterator.TraverseGraph[TState](EntityEntryGraphNode`1 node, Func`2 handleNode) at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.EntityGraphAttacher.AttachGraph(InternalEntityEntry rootEntry, EntityState targetState, EntityState storeGeneratedWithKeySetTargetState, Boolean forceStateWhenUnknownKey) at Microsoft.EntityFrameworkCore.Internal.InternalDbSet`1.Add(TEntity entity) at Jellyfin.Server.Migrations.Routines.MigrateLibraryDb.Perform() at Jellyfin.Server.Migrations.Stages.CodeMigration.Perform(IServiceProvider serviceProvider, IStartupLogger logger, CancellationToken cancellationToken) at Jellyfin.Server.Migrations.JellyfinMigrationService.InternalCodeMigration.PerformAsync(IStartupLogger logger) at Jellyfin.Server.Migrations.JellyfinMigrationService.MigrateStepAsync(JellyfinMigrationStageTypes stage, IServiceProvider serviceProvider) [21:31:19] [INF] [9] InternalCodeMigration: Attempt to rollback librarydb. [21:31:19] [INF] [9] InternalCodeMigration: Attempt to rollback JellyfinDb. [21:31:19] [FTL] [9] Main: Error while starting server ``` I tried the same trick with replacing the library.db with a known good copy but met with the same fate as did @frzifus even after removing it, cannot re-add my libraries. Just going to set up Jellyfin again from scratch like I'm reinstalling Windows because it's normal.
Author
Owner

@arminfuerst commented on GitHub (Nov 22, 2025):

The upgrade from 10.10.7 to 10.11.2 was not working properly and today I tried to upgrade to 10.11.3 which also failed. Here is the relevant part of the log:

[17:57:22] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Old migration style migration.xml detected. Migrate now.
[17:57:28] [FTL] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Failed to apply migrations
System.InvalidOperationException: Sequence contains no elements
   at System.Linq.ThrowHelper.ThrowNoElementsException()
   at System.Linq.Enumerable.Last[TSource](IEnumerable`1 source)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.CheckFirstTimeRunOrMigration(IApplicationPaths appPaths)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.CheckFirstTimeRunOrMigration(IApplicationPaths appPaths)
[17:57:28] [FTL] [1] Main: Unhandled Exception
System.InvalidOperationException: Sequence contains no elements
   at System.Linq.ThrowHelper.ThrowNoElementsException()
   at System.Linq.Enumerable.Last[TSource](IEnumerable`1 source)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.CheckFirstTimeRunOrMigration(IApplicationPaths appPaths)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.CheckFirstTimeRunOrMigration(IApplicationPaths appPaths)
   at Jellyfin.Server.Program.ApplyStartupMigrationAsync(ServerApplicationPaths appPaths, IConfiguration startupConfig)
   at Jellyfin.Server.Program.StartApp(StartupOptions options)
   at Jellyfin.Server.Program.<Main>(String[] args)
Unhandled exception. System.InvalidOperationException: Sequence contains no elements
   at System.Linq.ThrowHelper.ThrowNoElementsException()
   at System.Linq.Enumerable.Last[TSource](IEnumerable`1 source)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.CheckFirstTimeRunOrMigration(IApplicationPaths appPaths)
   at Jellyfin.Server.Migrations.JellyfinMigrationService.CheckFirstTimeRunOrMigration(IApplicationPaths appPaths)
   at Jellyfin.Server.Program.ApplyStartupMigrationAsync(ServerApplicationPaths appPaths, IConfiguration startupConfig)
   at Jellyfin.Server.Program.StartApp(StartupOptions options)
   at Jellyfin.Server.Program.<Main>(String[] args)

I then renamed jellyfin/config/migrations.xml to jellyfin/config/migrations.xml.disable because I assumed, the migrations.xml doesn't contain any relevant migrations. At the next startup, I only got an error about a missing column (u.MaxParentalRatingScore). Jellyfin continued to run, but I didn't try to use it. I stopped it and edited the sqlite database jellyfin.db directly (sqlite3 jellyfin.db). I executed following commands:

alter table Users rename column MaxParentalAgeRating to MaxParentalRatingScore;
alter table Users add column MaxParentalRatingSubScore INTEGER NULL;

The next startup of jellyfin resulted in no error in the log and I am able to use it. I found the "Catalog" for "Plugins" is missing, so I downgraded to 10.10.7.

@arminfuerst commented on GitHub (Nov 22, 2025): The upgrade from 10.10.7 to 10.11.2 was not working properly and today I tried to upgrade to 10.11.3 which also failed. Here is the relevant part of the log: ``` [17:57:22] [INF] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Old migration style migration.xml detected. Migrate now. [17:57:28] [FTL] [7] Jellyfin.Server.Migrations.JellyfinMigrationService: Failed to apply migrations System.InvalidOperationException: Sequence contains no elements at System.Linq.ThrowHelper.ThrowNoElementsException() at System.Linq.Enumerable.Last[TSource](IEnumerable`1 source) at Jellyfin.Server.Migrations.JellyfinMigrationService.CheckFirstTimeRunOrMigration(IApplicationPaths appPaths) at Jellyfin.Server.Migrations.JellyfinMigrationService.CheckFirstTimeRunOrMigration(IApplicationPaths appPaths) [17:57:28] [FTL] [1] Main: Unhandled Exception System.InvalidOperationException: Sequence contains no elements at System.Linq.ThrowHelper.ThrowNoElementsException() at System.Linq.Enumerable.Last[TSource](IEnumerable`1 source) at Jellyfin.Server.Migrations.JellyfinMigrationService.CheckFirstTimeRunOrMigration(IApplicationPaths appPaths) at Jellyfin.Server.Migrations.JellyfinMigrationService.CheckFirstTimeRunOrMigration(IApplicationPaths appPaths) at Jellyfin.Server.Program.ApplyStartupMigrationAsync(ServerApplicationPaths appPaths, IConfiguration startupConfig) at Jellyfin.Server.Program.StartApp(StartupOptions options) at Jellyfin.Server.Program.<Main>(String[] args) Unhandled exception. System.InvalidOperationException: Sequence contains no elements at System.Linq.ThrowHelper.ThrowNoElementsException() at System.Linq.Enumerable.Last[TSource](IEnumerable`1 source) at Jellyfin.Server.Migrations.JellyfinMigrationService.CheckFirstTimeRunOrMigration(IApplicationPaths appPaths) at Jellyfin.Server.Migrations.JellyfinMigrationService.CheckFirstTimeRunOrMigration(IApplicationPaths appPaths) at Jellyfin.Server.Program.ApplyStartupMigrationAsync(ServerApplicationPaths appPaths, IConfiguration startupConfig) at Jellyfin.Server.Program.StartApp(StartupOptions options) at Jellyfin.Server.Program.<Main>(String[] args) ``` I then renamed jellyfin/config/migrations.xml to jellyfin/config/migrations.xml.disable because I assumed, the migrations.xml doesn't contain any relevant migrations. At the next startup, I only got an error about a missing column (u.MaxParentalRatingScore). Jellyfin continued to run, but I didn't try to use it. I stopped it and edited the sqlite database jellyfin.db directly (`sqlite3 jellyfin.db`). I executed following commands: ``` alter table Users rename column MaxParentalAgeRating to MaxParentalRatingScore; alter table Users add column MaxParentalRatingSubScore INTEGER NULL; ``` The next startup of jellyfin resulted in no error in the log and I am able to use it. I found the "Catalog" for "Plugins" is missing, so I downgraded to 10.10.7.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#7461