Devolutions/UniGetUI · warning · InvalidOperationException

The manager "{managerId}" does not support installer downloa

Error message

The manager "{managerId}" does not support installer downloads.

What it means

DownloadPackageAsync throws when the resolved package's manager has Capabilities.CanDownloadInstaller == false. Not every package manager can fetch a standalone installer; only those that advertise the capability accept download requests.

Source

Thrown at src/UniGetUI.Interface.IpcApi/IpcPackageApi.cs:217

    }

    public static async Task<IpcPackageOperationResult> DownloadPackageAsync(
        IpcPackageActionRequest request
    )
    {
        ArgumentNullException.ThrowIfNull(request);

        if (string.IsNullOrWhiteSpace(request.OutputPath))
        {
            throw new InvalidOperationException(
                "The outputPath parameter is required when downloading a package."
            );
        }

        var package = FindAnyPackage(request);
        if (!package.Manager.Capabilities.CanDownloadInstaller)
        {
            throw new InvalidOperationException(
                $"The manager \"{IpcManagerSettingsApi.GetPublicManagerId(package.Manager)}\" does not support installer downloads."
            );
        }

        var operation = new DownloadOperation(package, request.OutputPath);
        string operationId = IpcOperationApi.Track(operation);

        if (request.WaitForCompletion == false)
        {
            _ = Task.Run(() => RunTrackedOperationAsync(operation));
            return CreateOperationResult(
                "download-package",
                package,
                operation,
                operation.DownloadLocation,
                completed: false,
                operationId: operationId
            );

View on GitHub (pinned to 9b1d7d0eab)

Solutions

  1. Check package.Manager.Capabilities.CanDownloadInstaller before requesting a download
  2. Filter the offered actions by manager capabilities in the UI
  3. Fall back to an install operation when download is unsupported

Example fix

// before
await IpcPackageApi.DownloadPackageAsync(req);
// after
if (!package.Manager.Capabilities.CanDownloadInstaller)
    return Result.Unsupported("download not supported by " + package.Manager.Name);
await IpcPackageApi.DownloadPackageAsync(req);
Defensive patterns

Strategy: validation

Validate before calling

if (!package.Manager.Capabilities.CanDownloadInstaller)
    throw new NotSupportedException(
        $"{package.Manager.Name} cannot download installers");

Prevention

When it happens

Trigger: Calling download on a package backed by a manager (e.g. npm, pip, .NET tool) that does not implement installer download.

Common situations: UI offers a Download button for every manager; client assumes download is universally supported; capability differs per manager implementation.

Related errors


AI-assisted analysis of Devolutions/UniGetUI@9b1d7d0eab (2026-08-13). Data as JSON: /api/errors/4147177e88ee59bc. Report an issue: GitHub.