Devolutions/UniGetUI · warning · InvalidOperationException
No installed package matching id "{PackageId}" was found.
Error message
No installed package matching id "{PackageId}" was found. What it means
FindInstalledPackage throws when the installed-packages snapshot (loader cache, else a live manager query) contains no package matching the id. Used by uninstall and reinstall.
Source
Thrown at src/UniGetUI.Interface.IpcApi/IpcPackageApi.cs:626
}
private static IPackage FindAnyPackage(IpcPackageActionRequest request)
{
return TryFindPackageForStateMutation(request)
?? FindSearchResult(request);
}
private static IPackage FindInstalledPackage(IpcPackageActionRequest request)
{
var package = GetInstalledPackagesSnapshot(request.ManagerName).FirstOrDefault(candidate =>
MatchesIdentity(candidate, request)
);
if (package is not null)
{
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."
);
}View on GitHub (pinned to 9b1d7d0eab)
Solutions
- Refresh the installed snapshot before acting
- Source the exact id/source pair from the installed list the UI already has
- Pre-check the snapshot with a FindInstalledPackage-style lookup
Example fix
// before
await IpcPackageApi.UninstallPackageAsync(staleRequest);
// after
var installed = manager.GetInstalledPackages()
.FirstOrDefault(p => p.Id == request.PackageId);
if (installed is null) return Result.NotFound("not installed");
await IpcPackageApi.UninstallPackageAsync(ToRequest(installed)); Defensive patterns
Strategy: validation
Validate before calling
// Confirm the package is in the installed snapshot before uninstall
var present = GetInstalledPackagesSnapshot(request.ManagerName)
.Any(p => MatchesIdentity(p, request));
if (!present) return Result.NotFound("not installed"); Prevention
- Wait for the installed loader to finish before offering uninstall
- Refresh snapshots after bulk operations
When it happens
Trigger: Calling uninstall/reinstall on a package that is not installed under any matching manager.
Common situations: Stale client list; package already removed by another path; the installed loader has not finished loading yet.
Related errors
- The manager parameter is required when removing an ignored u
- No package matching id "{PackageId}" was found.
- No upgradable 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/9af393db645dbdba.
Report an issue: GitHub.