Skip to content

[Issue]: Failure to refresh libraries after update. Readonly database. #11980

Closed
@thoja21

Description

Please describe your bug

Since upgrading to 10.9.5 I see the following exception being thrown in the Jellyfin logs when I refresh a library that has had new videos added.

I'm not familiar with the Jellyfin codebase at all and may be jumping ahead but assume this could be related to the readonly database changes made in the PR: #11969

Reproduction Steps

With 10.9.5 server installed:

  1. Add additional files (e.g. videos)
  2. Request a library refresh
  3. Video/music etc is not added to library and a 'readonly database' exception is thrown.

Jellyfin Version

10.9.0

if other:

No response

Environment

- OS: Ubuntu 23.10
- Linux Kernel: GNU/Linux 6.5.0-35-generic x86_64
- Virtualization: Docker
- Clients: N/A
- Browser: N/A
- FFmpeg Version:
- Playback Method:
- Hardware Acceleration:
- GPU Model:
- Plugins:
- Reverse Proxy:
- Base URL:
- Networking:
- Storage: Local SSD

Jellyfin logs

jellyfin  | [00:07:27] [INF] [1] Main: Startup complete 0:00:43.3183502
jellyfin  | [00:07:28] [INF] [10] Emby.Server.Implementations.ScheduledTasks.TaskManager: Update Plugins Completed after 0 minute(s) and 5 seconds
jellyfin  | [00:07:32] [INF] [16] Emby.Server.Implementations.HttpServer.WebSocketManager: WS 192.168.0.229 request
jellyfin  | [00:07:58] [INF] [23] MediaBrowser.Providers.TV.SeriesMetadataService: Creating Season Season Unknown entry for MyVideo
jellyfin  | [00:08:10] [ERR] [10] MediaBrowser.Providers.Manager.ProviderManager: Error refreshing item
jellyfin  | Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 8: 'attempt to write a readonly database'.
jellyfin  |    at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
jellyfin  |    at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
jellyfin  |    at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
jellyfin  |    at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader()
jellyfin  |    at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
jellyfin  |    at Emby.Server.Implementations.Data.SqliteItemRepository.UpdatePeople(Guid itemId, List`1 people)
jellyfin  |    at Emby.Server.Implementations.Library.LibraryManager.UpdatePeopleAsync(BaseItem item, List`1 people, CancellationToken cancellationToken)
jellyfin  |    at MediaBrowser.Providers.Manager.MetadataService`2.SaveItemAsync(MetadataResult`1 result, ItemUpdateType reason, CancellationToken cancellationToken)
jellyfin  |    at MediaBrowser.Providers.Manager.MetadataService`2.RefreshMetadata(BaseItem item, MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken)
jellyfin  |    at MediaBrowser.Controller.Entities.BaseItem.RefreshMetadata(MetadataRefreshOptions options, CancellationToken cancellationToken)
jellyfin  |    at MediaBrowser.Controller.Entities.TV.Series.RefreshAllMetadata(MetadataRefreshOptions refreshOptions, IProgress`1 progress, CancellationToken cancellationToken)
jellyfin  |    at MediaBrowser.Controller.Entities.Folder.RefreshAllMetadataForContainer(IMetadataContainer container, MetadataRefreshOptions refreshOptions, IProgress`1 progress, CancellationToken cancellationToken)
jellyfin  |    at MediaBrowser.Controller.Entities.Folder.RefreshChildMetadata(BaseItem child, MetadataRefreshOptions refreshOptions, Boolean recursive, IProgress`1 progress, CancellationToken cancellationToken)
jellyfin  |    at MediaBrowser.Controller.Entities.Folder.<>c__DisplayClass69_0`1.<<RunTasks>b__1>d.MoveNext()
jellyfin  | --- End of stack trace from previous location ---
jellyfin  |    at MediaBrowser.Controller.Entities.Folder.RunTasks[T](Func`3 task, IList`1 children, IProgress`1 progress, CancellationToken cancellationToken)
jellyfin  |    at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal2(IProgress`1 progress, Boolean recursive, Boolean refreshChildMetadata, Boolean allowRemoveRoot, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService, CancellationToken cancellationToken)
jellyfin  |    at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal(IProgress`1 progress, Boolean recursive, Boolean refreshChildMetadata, Boolean allowRemoveRoot, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService, CancellationToken cancellationToken)
jellyfin  |    at MediaBrowser.Providers.Manager.ProviderManager.RefreshCollectionFolderChildren(MetadataRefreshOptions options, CollectionFolder collectionFolder, CancellationToken cancellationToken)
jellyfin  |    at MediaBrowser.Providers.Manager.ProviderManager.RefreshItem(BaseItem item, MetadataRefreshOptions options, CancellationToken cancellationToken)
jellyfin  |    at MediaBrowser.Providers.Manager.ProviderManager.StartProcessingRefreshQueue()

FFmpeg logs

No response

Please attach any browser or client logs here

No response

Please attach any screenshots here

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingconfirmedThis issue has been reviewed and confirmed

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions