{"record":{"id":"eba0c07d68c3e3cb","repo":"Devolutions/UniGetUI","slug":"no-package-managers-are-available","errorCode":null,"errorMessage":"No package managers are available.","messagePattern":"No package managers are available\\.","errorType":"exception","errorClass":"InvalidOperationException","httpStatus":null,"severity":"error","filePath":"src/UniGetUI.Interface.IpcApi/IpcManagerSettingsApi.cs","lineNumber":340,"sourceCode":"            Message = operation.Status switch\n            {\n                OperationStatus.Succeeded => null,\n                OperationStatus.Canceled => \"The operation was canceled.\",\n                _ => operation.GetOutput().LastOrDefault().Item1,\n            },\n            Source = ToSourceInfo(source, isKnown: true, isConfigured: true),\n        };\n    }\n\n    internal static IReadOnlyList<IPackageManager> ResolveManagers(string? managerName)\n    {\n        var managers = PEInterface.Managers\n            .Where(manager => MatchesManagerId(manager, managerName))\n            .ToArray();\n\n        if (managers.Length == 0)\n        {\n            throw new InvalidOperationException(\n                string.IsNullOrWhiteSpace(managerName)\n                    ? \"No package managers are available.\"\n                    : $\"No package manager matching \\\"{managerName}\\\" was found.\"\n            );\n        }\n\n        return managers;\n    }\n\n    internal static IPackageManager ResolveManager(string managerName)\n    {\n        if (string.IsNullOrWhiteSpace(managerName))\n        {\n            throw new InvalidOperationException(\"The manager parameter is required.\");\n        }\n\n        return ResolveManagers(managerName).First();\n    }","sourceCodeStart":322,"sourceCodeEnd":358,"githubUrl":"https://github.com/Devolutions/UniGetUI/blob/9b1d7d0eab91620fc15c86b36676532095936ae3/src/UniGetUI.Interface.IpcApi/IpcManagerSettingsApi.cs#L322-L358","documentation":"Thrown by ResolveManagers when PEInterface.Managers is empty after filtering — specifically when managerName is null or whitespace, meaning no package managers are registered in the entire system. This indicates PEInterface.Managers was never populated or all managers failed initialization.","triggerScenarios":"Calling ListSources(null) or any API that calls ResolveManagers with a null/empty manager name, when PEInterface.Managers is empty. This is a system-level failure, not a query error.","commonSituations":"PEInterface not initialized before IPC calls (startup race condition). All managers disabled via DisabledManagers settings dictionary. Manager initialization failed for every single manager (e.g., running in an environment with no package manager CLIs installed and all managers erroring during Initialize).","solutions":["Ensure PEInterface.Managers is populated before any IPC call — check ListManagers() returns non-empty.","Verify that not all managers are disabled in settings (Settings.K.DisabledManagers dictionary).","Check application startup logs for manager initialization failures."],"exampleFix":"// before\nvar sources = IpcManagerSettingsApi.ListSources(null);\n// after\nvar managers = IpcManagerSettingsApi.ListManagers();\nif (managers.Count == 0)\n    throw new InvalidOperationException(\"No managers initialized.\");\nvar sources = IpcManagerSettingsApi.ListSources(null);","handlingStrategy":"validation","validationCode":"if (IpcManagerSettingsApi.ListManagers().Count == 0)\n    throw new InvalidOperationException(\"No package managers are initialized.\");","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Ensure PEInterface.Managers is populated during application startup before any IPC calls.","Check that not all managers are disabled in the DisabledManagers settings dictionary.","Review startup logs for manager initialization failures."],"tags":["package-manager","ipc","initialization","validation"],"backgroundTag":null,"analyzedSha":"9b1d7d0eab91620fc15c86b36676532095936ae3","analyzedAt":"2026-08-13T12:19:18.278Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}