{"record":{"id":"4ca0a18d379ed973","repo":"Radarr/Radarr","slug":"name-does-not-support-marking-items-as-imported-4ca0a1","errorCode":null,"errorMessage":"{Name} does not support marking items as imported","messagePattern":"(.+?) does not support marking items as imported","errorType":"exception","errorClass":"NotSupportedException","httpStatus":null,"severity":"warning","filePath":"src/NzbDrone.Core/Download/DownloadClientBase.cs","lineNumber":191,"sourceCode":"                    DetailedDescription = string.Format(\"The folder you specified does not exist or is inaccessible. Please verify the folder permissions for the user account '{0}', which is used to execute Radarr.\", Environment.UserName)\n                };\n            }\n\n            if (mustBeWritable && !_diskProvider.FolderWritable(folder))\n            {\n                _logger.Error(\"Folder '{0}' is not writable.\", folder);\n                return new NzbDroneValidationFailure(propertyName, \"Unable to write to folder\")\n                {\n                    DetailedDescription = string.Format(\"The folder you specified is not writable. Please verify the folder permissions for the user account '{0}', which is used to execute Radarr.\", Environment.UserName)\n                };\n            }\n\n            return null;\n        }\n\n        public virtual void MarkItemAsImported(DownloadClientItem downloadClientItem)\n        {\n            throw new NotSupportedException(Name + \" does not support marking items as imported\");\n        }\n    }\n}\n","sourceCodeStart":173,"sourceCodeEnd":195,"githubUrl":"https://github.com/Radarr/Radarr/blob/ca451608dc60c6cec754aba8d96bfa30e9468ed5/src/NzbDrone.Core/Download/DownloadClientBase.cs#L173-L195","documentation":"The base DownloadClientBase class provides a default MarkItemAsImported implementation that throws NotSupportedException. This is a virtual method meant to be overridden by download clients that support marking a completed item as imported (e.g. to tell the client the file has been moved). Clients that don't implement it (like some older or simpler clients) hit this default and throw.","triggerScenarios":"Calling MarkItemAsImported(downloadClientItem) on a download client that does not override the virtual method. This happens when Radarr's import completed-download handling attempts to signal the download client after a successful import, but the specific client implementation (e.g. a basic or blackhole client) doesn't support this feature.","commonSituations":"Using a download client like Pneumatic or a blackhole client that has no API for marking items as imported; enabling 'Remove Completed' or similar import-related settings that trigger MarkItemAsImported on a client that doesn't support it; upgrading to a Radarr version that newly calls MarkItemAsImported during the import flow.","solutions":["Switch to a download client that implements MarkItemAsImported (e.g. qBittorrent, Deluge, Transmission, rTorrent)","Disable settings that trigger the MarkItemAsImported call (e.g. advanced import completion handling)","If developing a custom client, override MarkItemAsImported in your DownloadClientBase subclass"],"exampleFix":"// before: base class throws NotSupportedException\npublic class MyDownloadClient : DownloadClientBase<MySettings>\n{\n    // no override\n}\n\n// after: override to support or no-op\npublic class MyDownloadClient : DownloadClientBase<MySettings>\n{\n    public override void MarkItemAsImported(DownloadClientItem downloadClientItem)\n    {\n        // implement client-specific API call to mark as imported\n    }\n}","handlingStrategy":"type-guard","validationCode":"// Check capability before calling\nvar clientType = downloadClient.GetType();\nvar method = clientType.GetMethod(\"MarkItemAsImported\", BindingFlags.Instance | BindingFlags.Public);\nvar isOverridden = method != null && method.DeclaringType != typeof(DownloadClientBase<>);\n// Only call if overridden\nif (isOverridden)\n{\n    downloadClient.MarkItemAsImported(item);\n}","typeGuard":"// Type guard: check if client supports MarkItemAsImported by testing\n// whether the method is overridden from the base class\npublic static bool SupportsMarkItemAsImported(IDownloadClient client)\n{\n    var method = client.GetType().GetMethod(\"MarkItemAsImported\");\n    return method != null && method.DeclaringType != typeof(DownloadClientBase<>) &&\n           method.DeclaringType?.BaseType != null;\n}","tryCatchPattern":"try\n{\n    downloadClient.MarkItemAsImported(item);\n}\ncatch (NotSupportedException)\n{\n    _logger.Debug(\"{0} does not support MarkItemAsImported, skipping.\", downloadClient.Name);\n    // This is expected for some clients — continue without failing the import\n}","preventionTips":["Check Radarr's documentation for which download clients support 'Mark as Imported'","If the feature is critical, choose qBittorrent, Deluge, Transmission, or rTorrent","When developing custom clients, always override MarkItemAsImported if your API supports it"],"tags":["download-client","not-supported","import","virtual-method"],"backgroundTag":null,"analyzedSha":"ca451608dc60c6cec754aba8d96bfa30e9468ed5","analyzedAt":"2026-08-13T17:21:54.115Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}