Devolutions/UniGetUI · critical · InvalidOperationException
No ready package managers are available.
Error message
No ready package managers are available.
What it means
GetManagers throws 'No ready package managers are available' when zero managers are both enabled and ready and no specific managerName was requested. This is a global environment failure: every package operation routes through GetManagers.
Source
Thrown at src/UniGetUI.Interface.IpcApi/IpcPackageApi.cs:755
{
reload(loader).GetAwaiter().GetResult();
}
return loader.Packages.Where(package => MatchesManager(package.Manager, managerName)).ToArray();
}
private static IReadOnlyList<IPackageManager> GetManagers(string? managerName)
{
var managers = PEInterface.Managers
.Where(manager => manager.IsEnabled() && manager.IsReady())
.Where(manager => MatchesManager(manager, managerName))
.ToArray();
if (managers.Length == 0)
{
if (string.IsNullOrWhiteSpace(managerName))
{
throw new InvalidOperationException("No ready package managers are available.");
}
throw new InvalidOperationException(
$"No ready package manager matching \"{managerName}\" is available."
);
}
return managers;
}
private static bool MatchesManager(IPackageManager manager, string? requestedManager)
{
return IpcManagerSettingsApi.MatchesManagerId(manager, requestedManager);
}
private static bool MatchesIdentity(IPackage package, IpcPackageActionRequest request)
{
if (!package.Id.Equals(request.PackageId, StringComparison.OrdinalIgnoreCase))View on GitHub (pinned to 9b1d7d0eab)
Solutions
- Poll the /status or get-app-info endpoint until managers report ready before issuing package calls
- Verify at least one manager is enabled in settings
- Confirm the underlying manager executables are installed and on PATH
Example fix
// before await IpcPackageApi.InstallPackageAsync(req); // called during startup // after await WaitForReadyAsync(); // polls get-app-info until any manager is ready await IpcPackageApi.InstallPackageAsync(req);
Defensive patterns
Strategy: validation
Validate before calling
async Task WaitForReadyAsync()
{
while (IpcPackageApi.GetManagers(null).Count == 0) // or poll get-app-info
await Task.Delay(TimeSpan.FromMilliseconds(250));
} Prevention
- Do not fire package calls during startup; wait for a ready signal
- Keep at least one manager enabled
- Verify manager executables on PATH
When it happens
Trigger: Calling any package operation while no manager has finished loading, or while every manager is disabled in settings.
Common situations: Calling the API too early during startup, before managers initialize; all managers disabled; manager executables (winget/scoop/...) not installed.
Related errors
- No ready package manager matching "{managerName}" is availab
- GitHub request failed with HTTP {(int)response.StatusCode} (
- GitHub returned an empty response.
- The current UniGetUI session is running headless and has no
- The current UniGetUI session is running headless and cannot
AI-assisted analysis of Devolutions/UniGetUI@9b1d7d0eab (2026-08-13).
Data as JSON: /api/errors/509c3f380d829ef2.
Report an issue: GitHub.