Is there an existing issue for this?
Current Behavior
Hi. I've setup the container using podman-systemd.unit to have the same UID and GID as the download client and as the owner of media directories. However, the user abc doesn't follow this setting and has the following set:
uid=911(abc) gid=1001(abc) groups=1001(abc),1000(users)
This leads to permission errors when adding the root folders:
Unable to add root folder
- Folder '/downloads/media/film/movies/' is not writable by user 'abc'
Expected Behavior
I expected the abc user to have the same UID and GID as specified with PUID and PGID environment variables respectively.
Steps To Reproduce
- Pass PUID and PGID environment variables to the container on creation
- Try adding a root folder to a mount owned by a host user with the specifed UID and GID
- Try executing /bin/bash in the container and running
id abc
Environment
- OS: Fedora Server 42
- How docker service was installed: Podman provided with the system
CPU architecture
x86-64
Docker creation
Placed this file in `/etc/containers/systemd/radarr.container`
[Container]
Image=lscr.io/linuxserver/radarr:latest
AutoUpdate=registry
Environment=PUID=989
Environment=PGID=988
Environment=TZ=Europe/Kyiv
PublishPort=42030:7878
ExposeHostPort=42010
ExposeHostPort=42020
ReadOnly=true
ReadOnlyTmpfs=true
Volume=radarr-config:/config:Z
Volume=/var/storage/media:/downloads/media:z
[Unit]
After=network.target
[Install]
WantedBy=default.target
Container logs
───────────────────────────────────────
GID/UID
───────────────────────────────────────
User UID: 911
User GID: 1001
───────────────────────────────────────
Linuxserver.io version: 5.26.2.10099-ls276
Build-date: 2025-06-15T04:52:48+00:00
───────────────────────────────────────
[custom-init] No custom files found, skipping...
[Info] Bootstrap: Starting Radarr - /app/radarr/bin/Radarr - Version 5.26.2.10099
[Info] AppFolderInfo: Data directory is being overridden to [/config]
[Debug] Bootstrap: Console selected
[Info] AppFolderInfo: Data directory is being overridden to [/config]
[Info] AppFolderInfo: Data directory is being overridden to [/config]
[Info] MigrationController: *** Migrating data source=/config/radarr.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
[Info] FluentMigrator.Runner.MigrationRunner: DatabaseEngineVersionCheck migrating
[Info] FluentMigrator.Runner.MigrationRunner: PerformDBOperation
[Info] NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor: Performing DB Operation
[Info] DatabaseEngineVersionCheck: SQLite 3.48.0
[Info] FluentMigrator.Runner.MigrationRunner: => 0.2518867s
[Info] FluentMigrator.Runner.MigrationRunner: DatabaseEngineVersionCheck migrated
[Info] FluentMigrator.Runner.MigrationRunner: => 0.2633974s
[Info] MigrationController: *** Migrating data source=/config/logs.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
[Info] FluentMigrator.Runner.MigrationRunner: DatabaseEngineVersionCheck migrating
[Info] FluentMigrator.Runner.MigrationRunner: PerformDBOperation
[Info] NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor: Performing DB Operation
[Info] DatabaseEngineVersionCheck: SQLite 3.48.0
[Info] FluentMigrator.Runner.MigrationRunner: => 0.0089624s
[Info] FluentMigrator.Runner.MigrationRunner: DatabaseEngineVersionCheck migrated
[Info] FluentMigrator.Runner.MigrationRunner: => 0.010204s
[Info] Microsoft.Hosting.Lifetime: Now listening on: http://[::]:7878
[ls.io-init] done.
[Info] CommandExecutor: Starting 2 threads for tasks.
[Info] Microsoft.Hosting.Lifetime: Application started. Press Ctrl+C to shut down.
[Info] Microsoft.Hosting.Lifetime: Hosting environment: Production
[Info] Microsoft.Hosting.Lifetime: Content root path: /app/radarr/bin
[Info] ManagedHttpDispatcher: IPv4 is available: True, IPv6 will be disabled
Following logs are repetitive variations of this:
[Info] RefreshMovieService: Updating info for *** *******
[Warn] DiskScanService: Movie's root folder (/downloads/media/film/movies) is empty. Rescan will not update movies as a failsafe.
Logs after I restarted through the menu:
[Info] LifecycleService: Restart requested.
[Info] CommandExecutor: Shutting down task execution
[Info] Scheduler: Shutting down scheduler
[Info] Bootstrap: Starting Radarr - /app/radarr/bin/Radarr - Version 5.26.2.10099
[Info] Bootstrap: Starting Radarr - /app/radarr/bin/Radarr - Version 5.26.2.10099
[Info] AppFolderInfo: Data directory is being overridden to [/config]
[Info] AppFolderInfo: Data directory is being overridden to [/config]
[Debug] Bootstrap: Console selected
[Debug] Bootstrap: Console selected
[Info] AppFolderInfo: Data directory is being overridden to [/config]
[Info] AppFolderInfo: Data directory is being overridden to [/config]
[Info] AppFolderInfo: Data directory is being overridden to [/config]
[Info] AppFolderInfo: Data directory is being overridden to [/config]
[Trace] DiskProviderBase: Directory '/config' isn't writable. The process cannot access the file '/config/radarr_write_test.txt' because it is being used by another process.
[Info] SingleInstancePolicy: 1 instance(s) of Radarr are running
[Info] MigrationController: *** Migrating data source=/config/radarr.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
[Fatal] Microsoft.AspNetCore.Hosting.Diagnostics: Application startup exception
[v5.26.2.10099] NzbDrone.Common.Exceptions.RadarrStartupException: Radarr failed to start: AppFolder /config is not writable
at NzbDrone.Common.EnvironmentInfo.AppFolderFactory.Register() in ./Radarr.Common/EnvironmentInfo/AppFolderFactory.cs:line 56
at NzbDrone.Host.Startup.Configure(IApplicationBuilder app, IContainer container, IStartupContext startupContext, Lazy`1 mainDatabaseFactory, Lazy`1 logDatabaseFactory, DatabaseTarget dbTarget, ISingleInstancePolicy singleInstancePolicy, InitializeLogger initializeLogger, ReconfigureLogging reconfigureLogging, IAppFolderFactory appFolderFactory, IProvidePidFile pidFileProvider, IConfigFileProvider configFileProvider, IRuntimeInfo runtimeInfo, IFirewallAdapter firewallAdapter, IEventAggregator eventAggregator, RadarrErrorPipeline errorHandler) in ./Radarr.Host/Startup.cs:line 231
at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder)
at Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.<Build>b__0(IApplicationBuilder builder)
at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass15_0.<UseStartup>b__1(IApplicationBuilder app)
at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.<Configure>g__MiddlewareFilterBuilder|0(IApplicationBuilder builder)
at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)
[Info] FluentMigrator.Runner.MigrationRunner: DatabaseEngineVersionCheck migrating
[Fatal] ConsoleApp: EPIC FAIL!
[v5.26.2.10099] NzbDrone.Common.Exceptions.RadarrStartupException: Radarr failed to start: AppFolder /config is not writable
at NzbDrone.Common.EnvironmentInfo.AppFolderFactory.Register() in ./Radarr.Common/EnvironmentInfo/AppFolderFactory.cs:line 56
at NzbDrone.Host.Startup.Configure(IApplicationBuilder app, IContainer container, IStartupContext startupContext, Lazy`1 mainDatabaseFactory, Lazy`1 logDatabaseFactory, DatabaseTarget dbTarget, ISingleInstancePolicy singleInstancePolicy, InitializeLogger initializeLogger, ReconfigureLogging reconfigureLogging, IAppFolderFactory appFolderFactory, IProvidePidFile pidFileProvider, IConfigFileProvider configFileProvider, IRuntimeInfo runtimeInfo, IFirewallAdapter firewallAdapter, IEventAggregator eventAggregator, RadarrErrorPipeline errorHandler) in ./Radarr.Host/Startup.cs:line 231
at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder)
at Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.<Build>b__0(IApplicationBuilder builder)
at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass15_0.<UseStartup>b__1(IApplicationBuilder app)
at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.<Configure>g__MiddlewareFilterBuilder|0(IApplicationBuilder builder)
at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)
at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)
at NzbDrone.Host.Bootstrap.Start(String[] args, Action`1 trayCallback) in ./Radarr.Host/Bootstrap.cs:line 79
at NzbDrone.Console.ConsoleApp.Main(String[] args) in ./Radarr.Console/ConsoleApp.cs:line 43
[Info] FluentMigrator.Runner.MigrationRunner: PerformDBOperation
[Info] NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor: Performing DB Operation
Press enter to exit...
[Info] DatabaseEngineVersionCheck: SQLite 3.48.0
[Info] FluentMigrator.Runner.MigrationRunner: => 0.1524525s
[Info] FluentMigrator.Runner.MigrationRunner: DatabaseEngineVersionCheck migrated
[Info] FluentMigrator.Runner.MigrationRunner: => 0.1606044s
[Info] MigrationController: *** Migrating data source=/config/logs.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 ***
[Info] FluentMigrator.Runner.MigrationRunner: DatabaseEngineVersionCheck migrating
[Info] FluentMigrator.Runner.MigrationRunner: PerformDBOperation
[Info] NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor: Performing DB Operation
[Info] DatabaseEngineVersionCheck: SQLite 3.48.0
[Info] FluentMigrator.Runner.MigrationRunner: => 0.0034646s
[Info] FluentMigrator.Runner.MigrationRunner: DatabaseEngineVersionCheck migrated
[Info] FluentMigrator.Runner.MigrationRunner: => 0.0040152s
Non-recoverable failure, waiting for user intervention...
[Info] Microsoft.Hosting.Lifetime: Now listening on: http://[::]:7878
[Info] CommandExecutor: Starting 2 threads for tasks.
[Info] Microsoft.Hosting.Lifetime: Application started. Press Ctrl+C to shut down.
[Info] Microsoft.Hosting.Lifetime: Hosting environment: Production
[Info] Microsoft.Hosting.Lifetime: Content root path: /app/radarr/bin
[Info] ManagedHttpDispatcher: IPv4 is available: True, IPv6 will be disabled
Some more of the repetitive content-related logs, and then:
[v5.26.2.10099] System.UnauthorizedAccessException: Access to the path '/downloads/media/film/movies/*** ******* ******' is denied.
---> System.IO.IOException: Permission denied
--- End of inner exception stack trace ---
at System.IO.FileSystem.CreateDirectory(String fullPath)
at System.IO.Directory.CreateDirectory(String path)
at NzbDrone.Common.Disk.DiskProviderBase.CreateFolder(String path) in ./Radarr.Common/Disk/DiskProviderBase.cs:line 218
at NzbDrone.Core.MediaFiles.MovieFileMovingService.CreateFolder(String directoryName) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 218
at NzbDrone.Core.MediaFiles.MovieFileMovingService.EnsureMovieFolder(MovieFile movieFile, Movie movie, String filePath) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 188
at NzbDrone.Core.MediaFiles.MovieFileMovingService.EnsureMovieFolder(MovieFile movieFile, LocalMovie localMovie, String filePath) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 164
at NzbDrone.Core.MediaFiles.MovieFileMovingService.CopyMovieFile(MovieFile movieFile, LocalMovie localMovie) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 90
at NzbDrone.Core.MediaFiles.UpgradeMediaFileService.UpgradeMovieFile(MovieFile movieFile, LocalMovie localMovie, Boolean copyOnly) in ./Radarr.Core/MediaFiles/UpgradeMediaFileService.cs:line 76
at NzbDrone.Core.MediaFiles.MovieImport.ImportApprovedMovie.Import(List`1 decisions, Boolean newDownload, DownloadClientItem downloadClientItem, ImportMode importMode) in ./Radarr.Core/MediaFiles/MovieImport/ImportApprovedMovie.cs:line 136
[Info] RefreshMovieService: Updating info for The Amateur
[Warn] DiskScanService: Movie's root folder (/downloads/media/film/movies) is empty. Rescan will not update movies as a failsafe.
[Warn] ImportApprovedMovie: Couldn't import movie /downloads/media/bucket/*** ******* ******
[v5.26.2.10099] System.UnauthorizedAccessException: Access to the path '/downloads/media/film/movies/*** ******* ******' is denied.
---> System.IO.IOException: Permission denied
--- End of inner exception stack trace ---
at System.IO.FileSystem.CreateDirectory(String fullPath)
at System.IO.Directory.CreateDirectory(String path)
at NzbDrone.Common.Disk.DiskProviderBase.CreateFolder(String path) in ./Radarr.Common/Disk/DiskProviderBase.cs:line 218
at NzbDrone.Core.MediaFiles.MovieFileMovingService.CreateFolder(String directoryName) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 218
at NzbDrone.Core.MediaFiles.MovieFileMovingService.EnsureMovieFolder(MovieFile movieFile, Movie movie, String filePath) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 188
at NzbDrone.Core.MediaFiles.MovieFileMovingService.EnsureMovieFolder(MovieFile movieFile, LocalMovie localMovie, String filePath) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 164
at NzbDrone.Core.MediaFiles.MovieFileMovingService.CopyMovieFile(MovieFile movieFile, LocalMovie localMovie) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 90
at NzbDrone.Core.MediaFiles.UpgradeMediaFileService.UpgradeMovieFile(MovieFile movieFile, LocalMovie localMovie, Boolean copyOnly) in ./Radarr.Core/MediaFiles/UpgradeMediaFileService.cs:line 76
at NzbDrone.Core.MediaFiles.MovieImport.ImportApprovedMovie.Import(List`1 decisions, Boolean newDownload, DownloadClientItem downloadClientItem, ImportMode importMode) in ./Radarr.Core/MediaFiles/MovieImport/ImportApprovedMovie.cs:line 136
[Warn] RadarrErrorPipeline: Invalid request Validation failed:
-- Path: Folder '/downloads/media/film/movies/' is not writable by user 'abc'
[Info] RssSyncService: Starting RSS Sync
[Warn] Torznab: Indexer *** ****** *** (Prowlarr) rss sync didn't cover the period between 06/16/2025 05:38:37 and 06/16/2025 07:42:47 UTC. Search may be required.
[Info] DownloadDecisionMaker: Processing 236 releases
[Info] DownloadService: Report for *** ******* ****** sent to Flood from indexer Toloka.to (Prowlarr). *** ******* ******
[Info] RssSyncService: RSS Sync Completed. Reports found: 236, Reports grabbed: 1
[Warn] ImportApprovedMovie: Couldn't import movie /downloads/media/bucket/*** ******* ******
Is there an existing issue for this?
Current Behavior
Hi. I've setup the container using podman-systemd.unit to have the same UID and GID as the download client and as the owner of media directories. However, the user
abcdoesn't follow this setting and has the following set:This leads to permission errors when adding the root folders:
Expected Behavior
I expected the
abcuser to have the same UID and GID as specified with PUID and PGID environment variables respectively.Steps To Reproduce
id abcEnvironment
CPU architecture
x86-64
Docker creation
Container logs
─────────────────────────────────────── GID/UID ─────────────────────────────────────── User UID: 911 User GID: 1001 ─────────────────────────────────────── Linuxserver.io version: 5.26.2.10099-ls276 Build-date: 2025-06-15T04:52:48+00:00 ─────────────────────────────────────── [custom-init] No custom files found, skipping... [Info] Bootstrap: Starting Radarr - /app/radarr/bin/Radarr - Version 5.26.2.10099 [Info] AppFolderInfo: Data directory is being overridden to [/config] [Debug] Bootstrap: Console selected [Info] AppFolderInfo: Data directory is being overridden to [/config] [Info] AppFolderInfo: Data directory is being overridden to [/config] [Info] MigrationController: *** Migrating data source=/config/radarr.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 *** [Info] FluentMigrator.Runner.MigrationRunner: DatabaseEngineVersionCheck migrating [Info] FluentMigrator.Runner.MigrationRunner: PerformDBOperation [Info] NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor: Performing DB Operation [Info] DatabaseEngineVersionCheck: SQLite 3.48.0 [Info] FluentMigrator.Runner.MigrationRunner: => 0.2518867s [Info] FluentMigrator.Runner.MigrationRunner: DatabaseEngineVersionCheck migrated [Info] FluentMigrator.Runner.MigrationRunner: => 0.2633974s [Info] MigrationController: *** Migrating data source=/config/logs.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 *** [Info] FluentMigrator.Runner.MigrationRunner: DatabaseEngineVersionCheck migrating [Info] FluentMigrator.Runner.MigrationRunner: PerformDBOperation [Info] NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor: Performing DB Operation [Info] DatabaseEngineVersionCheck: SQLite 3.48.0 [Info] FluentMigrator.Runner.MigrationRunner: => 0.0089624s [Info] FluentMigrator.Runner.MigrationRunner: DatabaseEngineVersionCheck migrated [Info] FluentMigrator.Runner.MigrationRunner: => 0.010204s [Info] Microsoft.Hosting.Lifetime: Now listening on: http://[::]:7878 [ls.io-init] done. [Info] CommandExecutor: Starting 2 threads for tasks. [Info] Microsoft.Hosting.Lifetime: Application started. Press Ctrl+C to shut down. [Info] Microsoft.Hosting.Lifetime: Hosting environment: Production [Info] Microsoft.Hosting.Lifetime: Content root path: /app/radarr/bin [Info] ManagedHttpDispatcher: IPv4 is available: True, IPv6 will be disabled Following logs are repetitive variations of this: [Info] RefreshMovieService: Updating info for *** ******* [Warn] DiskScanService: Movie's root folder (/downloads/media/film/movies) is empty. Rescan will not update movies as a failsafe. Logs after I restarted through the menu: [Info] LifecycleService: Restart requested. [Info] CommandExecutor: Shutting down task execution [Info] Scheduler: Shutting down scheduler [Info] Bootstrap: Starting Radarr - /app/radarr/bin/Radarr - Version 5.26.2.10099 [Info] Bootstrap: Starting Radarr - /app/radarr/bin/Radarr - Version 5.26.2.10099 [Info] AppFolderInfo: Data directory is being overridden to [/config] [Info] AppFolderInfo: Data directory is being overridden to [/config] [Debug] Bootstrap: Console selected [Debug] Bootstrap: Console selected [Info] AppFolderInfo: Data directory is being overridden to [/config] [Info] AppFolderInfo: Data directory is being overridden to [/config] [Info] AppFolderInfo: Data directory is being overridden to [/config] [Info] AppFolderInfo: Data directory is being overridden to [/config] [Trace] DiskProviderBase: Directory '/config' isn't writable. The process cannot access the file '/config/radarr_write_test.txt' because it is being used by another process. [Info] SingleInstancePolicy: 1 instance(s) of Radarr are running [Info] MigrationController: *** Migrating data source=/config/radarr.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 *** [Fatal] Microsoft.AspNetCore.Hosting.Diagnostics: Application startup exception [v5.26.2.10099] NzbDrone.Common.Exceptions.RadarrStartupException: Radarr failed to start: AppFolder /config is not writable at NzbDrone.Common.EnvironmentInfo.AppFolderFactory.Register() in ./Radarr.Common/EnvironmentInfo/AppFolderFactory.cs:line 56 at NzbDrone.Host.Startup.Configure(IApplicationBuilder app, IContainer container, IStartupContext startupContext, Lazy`1 mainDatabaseFactory, Lazy`1 logDatabaseFactory, DatabaseTarget dbTarget, ISingleInstancePolicy singleInstancePolicy, InitializeLogger initializeLogger, ReconfigureLogging reconfigureLogging, IAppFolderFactory appFolderFactory, IProvidePidFile pidFileProvider, IConfigFileProvider configFileProvider, IRuntimeInfo runtimeInfo, IFirewallAdapter firewallAdapter, IEventAggregator eventAggregator, RadarrErrorPipeline errorHandler) in ./Radarr.Host/Startup.cs:line 231 at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.<Build>b__0(IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass15_0.<UseStartup>b__1(IApplicationBuilder app) at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.<Configure>g__MiddlewareFilterBuilder|0(IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) [Info] FluentMigrator.Runner.MigrationRunner: DatabaseEngineVersionCheck migrating [Fatal] ConsoleApp: EPIC FAIL! [v5.26.2.10099] NzbDrone.Common.Exceptions.RadarrStartupException: Radarr failed to start: AppFolder /config is not writable at NzbDrone.Common.EnvironmentInfo.AppFolderFactory.Register() in ./Radarr.Common/EnvironmentInfo/AppFolderFactory.cs:line 56 at NzbDrone.Host.Startup.Configure(IApplicationBuilder app, IContainer container, IStartupContext startupContext, Lazy`1 mainDatabaseFactory, Lazy`1 logDatabaseFactory, DatabaseTarget dbTarget, ISingleInstancePolicy singleInstancePolicy, InitializeLogger initializeLogger, ReconfigureLogging reconfigureLogging, IAppFolderFactory appFolderFactory, IProvidePidFile pidFileProvider, IConfigFileProvider configFileProvider, IRuntimeInfo runtimeInfo, IFirewallAdapter firewallAdapter, IEventAggregator eventAggregator, RadarrErrorPipeline errorHandler) in ./Radarr.Host/Startup.cs:line 231 at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.<Build>b__0(IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass15_0.<UseStartup>b__1(IApplicationBuilder app) at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.<Configure>g__MiddlewareFilterBuilder|0(IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host) at NzbDrone.Host.Bootstrap.Start(String[] args, Action`1 trayCallback) in ./Radarr.Host/Bootstrap.cs:line 79 at NzbDrone.Console.ConsoleApp.Main(String[] args) in ./Radarr.Console/ConsoleApp.cs:line 43 [Info] FluentMigrator.Runner.MigrationRunner: PerformDBOperation [Info] NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor: Performing DB Operation Press enter to exit... [Info] DatabaseEngineVersionCheck: SQLite 3.48.0 [Info] FluentMigrator.Runner.MigrationRunner: => 0.1524525s [Info] FluentMigrator.Runner.MigrationRunner: DatabaseEngineVersionCheck migrated [Info] FluentMigrator.Runner.MigrationRunner: => 0.1606044s [Info] MigrationController: *** Migrating data source=/config/logs.db;cache size=-20000;datetimekind=Utc;journal mode=Wal;pooling=True;version=3;busytimeout=100 *** [Info] FluentMigrator.Runner.MigrationRunner: DatabaseEngineVersionCheck migrating [Info] FluentMigrator.Runner.MigrationRunner: PerformDBOperation [Info] NzbDrone.Core.Datastore.Migration.Framework.NzbDroneSQLiteProcessor: Performing DB Operation [Info] DatabaseEngineVersionCheck: SQLite 3.48.0 [Info] FluentMigrator.Runner.MigrationRunner: => 0.0034646s [Info] FluentMigrator.Runner.MigrationRunner: DatabaseEngineVersionCheck migrated [Info] FluentMigrator.Runner.MigrationRunner: => 0.0040152s Non-recoverable failure, waiting for user intervention... [Info] Microsoft.Hosting.Lifetime: Now listening on: http://[::]:7878 [Info] CommandExecutor: Starting 2 threads for tasks. [Info] Microsoft.Hosting.Lifetime: Application started. Press Ctrl+C to shut down. [Info] Microsoft.Hosting.Lifetime: Hosting environment: Production [Info] Microsoft.Hosting.Lifetime: Content root path: /app/radarr/bin [Info] ManagedHttpDispatcher: IPv4 is available: True, IPv6 will be disabled Some more of the repetitive content-related logs, and then: [v5.26.2.10099] System.UnauthorizedAccessException: Access to the path '/downloads/media/film/movies/*** ******* ******' is denied. ---> System.IO.IOException: Permission denied --- End of inner exception stack trace --- at System.IO.FileSystem.CreateDirectory(String fullPath) at System.IO.Directory.CreateDirectory(String path) at NzbDrone.Common.Disk.DiskProviderBase.CreateFolder(String path) in ./Radarr.Common/Disk/DiskProviderBase.cs:line 218 at NzbDrone.Core.MediaFiles.MovieFileMovingService.CreateFolder(String directoryName) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 218 at NzbDrone.Core.MediaFiles.MovieFileMovingService.EnsureMovieFolder(MovieFile movieFile, Movie movie, String filePath) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 188 at NzbDrone.Core.MediaFiles.MovieFileMovingService.EnsureMovieFolder(MovieFile movieFile, LocalMovie localMovie, String filePath) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 164 at NzbDrone.Core.MediaFiles.MovieFileMovingService.CopyMovieFile(MovieFile movieFile, LocalMovie localMovie) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 90 at NzbDrone.Core.MediaFiles.UpgradeMediaFileService.UpgradeMovieFile(MovieFile movieFile, LocalMovie localMovie, Boolean copyOnly) in ./Radarr.Core/MediaFiles/UpgradeMediaFileService.cs:line 76 at NzbDrone.Core.MediaFiles.MovieImport.ImportApprovedMovie.Import(List`1 decisions, Boolean newDownload, DownloadClientItem downloadClientItem, ImportMode importMode) in ./Radarr.Core/MediaFiles/MovieImport/ImportApprovedMovie.cs:line 136 [Info] RefreshMovieService: Updating info for The Amateur [Warn] DiskScanService: Movie's root folder (/downloads/media/film/movies) is empty. Rescan will not update movies as a failsafe. [Warn] ImportApprovedMovie: Couldn't import movie /downloads/media/bucket/*** ******* ****** [v5.26.2.10099] System.UnauthorizedAccessException: Access to the path '/downloads/media/film/movies/*** ******* ******' is denied. ---> System.IO.IOException: Permission denied --- End of inner exception stack trace --- at System.IO.FileSystem.CreateDirectory(String fullPath) at System.IO.Directory.CreateDirectory(String path) at NzbDrone.Common.Disk.DiskProviderBase.CreateFolder(String path) in ./Radarr.Common/Disk/DiskProviderBase.cs:line 218 at NzbDrone.Core.MediaFiles.MovieFileMovingService.CreateFolder(String directoryName) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 218 at NzbDrone.Core.MediaFiles.MovieFileMovingService.EnsureMovieFolder(MovieFile movieFile, Movie movie, String filePath) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 188 at NzbDrone.Core.MediaFiles.MovieFileMovingService.EnsureMovieFolder(MovieFile movieFile, LocalMovie localMovie, String filePath) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 164 at NzbDrone.Core.MediaFiles.MovieFileMovingService.CopyMovieFile(MovieFile movieFile, LocalMovie localMovie) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 90 at NzbDrone.Core.MediaFiles.UpgradeMediaFileService.UpgradeMovieFile(MovieFile movieFile, LocalMovie localMovie, Boolean copyOnly) in ./Radarr.Core/MediaFiles/UpgradeMediaFileService.cs:line 76 at NzbDrone.Core.MediaFiles.MovieImport.ImportApprovedMovie.Import(List`1 decisions, Boolean newDownload, DownloadClientItem downloadClientItem, ImportMode importMode) in ./Radarr.Core/MediaFiles/MovieImport/ImportApprovedMovie.cs:line 136 [Warn] RadarrErrorPipeline: Invalid request Validation failed: -- Path: Folder '/downloads/media/film/movies/' is not writable by user 'abc' [Info] RssSyncService: Starting RSS Sync [Warn] Torznab: Indexer *** ****** *** (Prowlarr) rss sync didn't cover the period between 06/16/2025 05:38:37 and 06/16/2025 07:42:47 UTC. Search may be required. [Info] DownloadDecisionMaker: Processing 236 releases [Info] DownloadService: Report for *** ******* ****** sent to Flood from indexer Toloka.to (Prowlarr). *** ******* ****** [Info] RssSyncService: RSS Sync Completed. Reports found: 236, Reports grabbed: 1 [Warn] ImportApprovedMovie: Couldn't import movie /downloads/media/bucket/*** ******* ******