Radarr/Radarr · error · UpdateFailedException

Your Radarr configuration '{0}' is being stored in applicati

Error message

Your Radarr configuration '{0}' is being stored in application folder '{1}' which will cause data lost during the upgrade. Please remove any symlinks or redirects before trying again.

What it means

UpdateFailedException thrown by EnsureAppDataSafety() when the AppDataFolder (config) is either the same as or a child of the StartUpFolder. Because updates overwrite the install directory, storing config there would destroy it during upgrade. Radarr aborts to prevent data loss. Both the AppData and StartUp paths are reported.

Source

Thrown at src/NzbDrone.Core/Update/InstallUpdateService.cs:230

            _logger.ProgressInfo("Starting update script: {0}", _configFileProvider.UpdateScriptPath);
            _processProvider.Start(scriptPath, GetUpdaterArgs(updateSandboxFolder));
        }

        private string GetUpdaterArgs(string updateSandboxFolder)
        {
            var processId = _processProvider.GetCurrentProcess().Id.ToString();
            var executingApplication = _runtimeInfo.ExecutingApplication;

            return string.Join(" ", processId, updateSandboxFolder.TrimEnd(Path.DirectorySeparatorChar).WrapInQuotes(), executingApplication.WrapInQuotes(), _startupContext.PreservedArguments);
        }

        private void EnsureAppDataSafety()
        {
            if (_appFolderInfo.StartUpFolder.IsParentPath(_appFolderInfo.AppDataFolder) ||
                _appFolderInfo.StartUpFolder.PathEquals(_appFolderInfo.AppDataFolder))
            {
                throw new UpdateFailedException("Your Radarr configuration '{0}' is being stored in application folder '{1}' which will cause data lost during the upgrade. Please remove any symlinks or redirects before trying again.", _appFolderInfo.AppDataFolder, _appFolderInfo.StartUpFolder);
            }
        }

        private UpdatePackage GetUpdatePackage(CommandTrigger updateTrigger, bool installMajorUpdate)
        {
            _logger.ProgressDebug("Checking for updates");

            var latestAvailable = _checkUpdateService.AvailableUpdate();

            if (latestAvailable == null)
            {
                _logger.ProgressDebug("No update available");
                return null;
            }

            if (latestAvailable.Version.Major > BuildInfo.Version.Major && !installMajorUpdate)
            {
                _logger.ProgressInfo("Unable to install major update, please update update manually from System: Updates");

View on GitHub (pinned to ca451608dc)

Solutions

  1. Move AppData outside the install directory (e.g. /var/lib/radarr/.config/Radarr) and set the APPDATA env var / -data flag accordingly.
  2. Remove any symlink that chains AppData back under StartUpFolder.
  3. Reinstall so binary and config directories are siblings, not nested.

Example fix

# move config out of install dir
sudo mkdir -p /var/lib/radarr/.config
sudo mv /opt/Radarr/AppData /var/lib/radarr/.config/Radarr
# launch with -data /var/lib/radarr/.config/Radarr
Defensive patterns

Strategy: validation

Validate before calling

if (_appFolderInfo.StartUpFolder.IsParentPath(_appFolderInfo.AppDataFolder) ||
    _appFolderInfo.StartUpFolder.PathEquals(_appFolderInfo.AppDataFolder))
{
    _logger.Error("AppData lives inside the startup folder; refusing to auto-update to avoid data loss");
    _configFileProvider.UpdateAutomatically = false;
}

Try / catch

try { EnsureAppDataSafety(); InstallUpdate(package); }
catch (UpdateFailedException ex) when (ex.Message.Contains("data lost"))
{
    _logger.Error(ex, "Move AppData out of the install folder before updating");
}

Prevention

When it happens

Trigger: EnsureAppDataSafety() runs at the start of InstallUpdate; StartUpFolder.IsParentPath(AppDataFolder) or they are PathEquals -> exception.

Common situations: Default install where config lives inside the app folder; a symlink/redirect that resolves AppData back under the install dir; extracting Radarr into its own config directory; user set APPDATA/DataFolder to a subfolder of the install path.

Related errors


AI-assisted analysis of Radarr/Radarr@ca451608dc (2026-08-13). Data as JSON: /api/errors/afdae6fa2a22b67c. Report an issue: GitHub.