Devolutions/UniGetUI · warning · InvalidOperationException
No upgradable package matching id "{PackageId}" was found.
Error message
No upgradable package matching id "{PackageId}" was found. What it means
FindUpgradablePackage throws when the upgradable-packages snapshot has no package matching the id. Used by update operations.
Source
Thrown at src/UniGetUI.Interface.IpcApi/IpcPackageApi.cs:641
return package;
}
throw new InvalidOperationException(
$"No installed package matching id \"{request.PackageId}\" was found."
);
}
private static IPackage FindUpgradablePackage(IpcPackageActionRequest request)
{
var package = GetUpgradablePackagesSnapshot(request.ManagerName).FirstOrDefault(candidate =>
MatchesIdentity(candidate, request)
);
if (package is not null)
{
return package;
}
throw new InvalidOperationException(
$"No upgradable package matching id \"{request.PackageId}\" was found."
);
}
private static IPackage FindUpgradablePackageOrInstalledPackage(
IpcPackageActionRequest request
)
{
try
{
return FindUpgradablePackage(request);
}
catch (InvalidOperationException)
{
return FindInstalledPackage(request);
}
}
View on GitHub (pinned to 9b1d7d0eab)
Solutions
- Operate only on packages returned by the upgradable list
- Refresh the upgradable snapshot before issuing updates
- Treat 'no upgradable match' as already-current rather than a hard failure
Example fix
// before
await IpcPackageApi.UpdatePackageAsync(reqForFullyUpdatedPkg);
// after
if (GetUpgradablePackagesSnapshot(null).All(p => p.Id != req.PackageId))
return Result.UpToDate();
await IpcPackageApi.UpdatePackageAsync(req); Defensive patterns
Strategy: validation
Validate before calling
var hasUpdate = GetUpgradablePackagesSnapshot(request.ManagerName)
.Any(p => MatchesIdentity(p, request));
if (!hasUpdate) return Result.UpToDate(); Prevention
- Drive updates from the upgradable list, not the installed list
- Refresh the upgradable snapshot on demand
When it happens
Trigger: Calling update on a package that has no available update.
Common situations: Already up to date; snapshot stale; updates disabled for the manager.
Related errors
- The manager parameter is required when removing an ignored u
- No package matching id "{PackageId}" was found.
- No installed package matching id "{PackageId}" was found.
- GitHub request failed with HTTP {(int)response.StatusCode} (
- GitHub returned an empty response.
AI-assisted analysis of Devolutions/UniGetUI@9b1d7d0eab (2026-08-13).
Data as JSON: /api/errors/8a3c7a9d206f05f6.
Report an issue: GitHub.