Checking NZBGet download status on Synology server error

I have NZBDrone installed on a Windows 8.1 PC and NZBGet/nzbToMedia installed on a Synology server.

It’s working ok when NZBDrone is instructed to process the finished download by nzbToMedia. It passes in the Synology path /volume1/downloads/complete/drone and I have a Category Local Path configured as \\192.168.0.2\downloads\complete\drone which maps correctly to the Synology share from Windows.

However, download status checking by NZBDrone appears not to work properly. My error logs are full of this message “Error occurred while executing task NzbDrone.Core.Download.CheckForFinishedDownloadCommand: value …” followed by the Synology path of my download folder. it seems to be ignoring my Category Local Path while checking for download status updates, it’s just using the Synology path that NZBGet provides which is invalid on Windows.

Could you provide us the whole error message please. I don’t think this feature has gone through much real world testing, so having the full error with help us dig in.

Here it is… my error log is full of this. It seems to be ignoring my Category Local Path setting when checking download status.

Message
Error occurred while executing task NzbDrone.Core.Download.CheckForFinishedDownloadCommand: value [/volume1/downloads/incomplete/TV_SHOW_NAME_HERE.#1218] is not a valid Windows path. paths must be a full path eg. C:\Windows
Parameter name: path

Exception
System.ArgumentException: value [/volume1/downloads/incomplete/TV_SHOW_NAME_HERE.#1218] is not a valid Windows path. paths must be a full path eg. C:\Windows
Parameter name: path
at NzbDrone.Common.EnsureThat.EnsureStringExtensions.IsValidPath(Param1 param) in m:\BuildAgent1\work\328d72309b633a8\src\NzbDrone.Common\EnsureThat\EnsureStringExtensions.cs:line 101 at NzbDrone.Common.PathExtensions.CleanFilePath(String path) in m:\BuildAgent1\work\328d72309b633a8\src\NzbDrone.Common\PathExtensions.cs:line 28 at NzbDrone.Common.PathExtensions.PathEquals(String firstPath, String secondPath) in m:\BuildAgent1\work\328d72309b633a8\src\NzbDrone.Common\PathExtensions.cs:line 43 at NzbDrone.Core.Download.CompletedDownloadService.CheckForCompletedItem(IDownloadClient downloadClient, TrackedDownload trackedDownload, List1 grabbedHistory, List1 importedHistory) in m:\BuildAgent1\work\328d72309b633a8\src\NzbDrone.Core\Download\CompletedDownloadService.cs:line 89 at NzbDrone.Core.Download.DownloadTrackingService.ProcessTrackedDownloads() in m:\BuildAgent1\work\328d72309b633a8\src\NzbDrone.Core\Download\DownloadTrackingService.cs:line 201 at NzbDrone.Core.Download.DownloadTrackingService.Execute(CheckForFinishedDownloadCommand message) in m:\BuildAgent1\work\328d72309b633a8\src\NzbDrone.Core\Download\DownloadTrackingService.cs:line 219 at NzbDrone.Core.Messaging.Commands.CommandExecutor.ExecuteCommand[TCommand](Command command) in m:\BuildAgent1\work\328d72309b633a8\src\NzbDrone.Core\Messaging\Commands\CommandExecutor.cs:line 137 at NzbDrone.Core.Messaging.Commands.CommandExecutor.PublishCommand[TCommand](TCommand command) in m:\BuildAgent1\work\328d72309b633a8\src\NzbDrone.Core\Messaging\Commands\CommandExecutor.cs:line 48 at CallSite.Target(Closure , CallSite , CommandExecutor , Object ) at System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid2[T0,T1](CallSite site, T0 arg0, T1 arg1) at CallSite.Target(Closure , CallSite , CommandExecutor , Object ) at NzbDrone.Core.Messaging.Commands.CommandExecutor.PublishCommand(String commandTypeName, Nullable1 lastExecutionTime) in m:\BuildAgent1\work\328d72309b633a8\src\NzbDrone.Core\Messaging\Commands\CommandExecutor.cs:line 61
at NzbDrone.Core.Jobs.Scheduler.ExecuteCommands() in m:\BuildAgent1\work\328d72309b633a8\src\NzbDrone.Core\Jobs\Scheduler.cs:line 46

Hey stuart,
Couple of things.

Not sure if this is the case, but you shouldn’t use the nzbtoMedia notification script like that with Completed Download Handling.
You can use NzbToMedia PP scripts like subtitles, transcoding etc. But not the part that notifies drone. This ‘notification’ part is actually notifying the Drone Factory, which is the dumb “scan this directory for new stuff” approach.
Completed Download Handling actively polls Nzbget to get the status, and you don’t want those two mechanisms competing over the same item. Also ‘Local Category Path’ is only used for CDH, not the Drone Factory.

Secondly, probably more applicable:

Synology path: /volume1/downloads/complete/drone
Local Path: \192.168.0.2\downloads\complete\drone
Path In error: /volume1/downloads/incomplete

Where does that “path in error” come from? it’s the intermediate directory, and sab shouldn’t be returning that as the storage path.
Sab should be supplying “/volume1/downloads/complete/drone” which drone will detect and replace with the local path you specified.
So it might be that the pp-script is mangling it, which you should verify.

Thanks that clears it up. I turned off nzbToMedia notification script so now it just does CDH and doesn’t trip over itself.

To the second point, I figured out that the intermediate path is returned by NZBGet as the storage path when the download has been marked as a duplicate in it’s download history. Not sure if there’s a way to detect if it’s been flagged as a dupe and ignore it…