Devolutions/UniGetUI · error · InvalidOperationException
The setting key is required.
Error message
The setting key is required.
What it means
Thrown by ResolveSettingKey when settingKey is null, empty, or whitespace. Every setting-related API (GetSetting, SetSetting, ClearSetting) calls ResolveSettingKey which requires a non-blank key string to resolve against the Settings.K enum.
Source
Thrown at src/UniGetUI.Interface.IpcApi/IpcManagerSettingsApi.cs:499
{
return manager.SourcesHelper.GetSources();
}
catch (NotImplementedException)
{
return [];
}
}
private static bool IsVisibleSetting(Settings.K setting)
{
return setting != Settings.K.Unset && !HiddenSettings.Contains(setting);
}
private static Settings.K ResolveSettingKey(string settingKey)
{
if (string.IsNullOrWhiteSpace(settingKey))
{
throw new InvalidOperationException("The setting key is required.");
}
foreach (var candidate in Enum.GetValues<Settings.K>())
{
if (!IsVisibleSetting(candidate))
{
continue;
}
if (
candidate.ToString().Equals(settingKey, StringComparison.OrdinalIgnoreCase)
|| Settings.ResolveKey(candidate).Equals(
settingKey,
StringComparison.OrdinalIgnoreCase
)
)
{
return candidate;View on GitHub (pinned to 9b1d7d0eab)
Solutions
- Provide a non-empty setting key string.
- Call ListSettings() to enumerate valid setting keys (both enum name and resolved key string).
- Validate the setting key on the client side before sending the IPC request.
Example fix
// before
var info = IpcManagerSettingsApi.GetSetting("");
// after
var settings = IpcManagerSettingsApi.ListSettings();
var key = settings.First(s => s.Name == "EnableScoopCleanup").Key;
var info = IpcManagerSettingsApi.GetSetting(key); Defensive patterns
Strategy: validation
Validate before calling
if (string.IsNullOrWhiteSpace(settingKey))
throw new ArgumentException("Setting key is required.", nameof(settingKey)); Prevention
- Always provide a non-blank setting key.
- Call ListSettings() to enumerate valid keys.
- DTO initializes SettingKey to empty string — set it explicitly.
When it happens
Trigger: Calling GetSetting(""), SetSetting with empty SettingKey, or ClearSetting("") — any path where the setting key argument is blank.
Common situations: IPC client omits SettingKey from the JSON payload (IpcSettingValueRequest defaults SettingKey to empty string). Client passes a setting key that is whitespace-only. Missing form field validation.
Related errors
- Provide exactly one of enabled or value when setting a setti
- The manager parameter is required.
- The source name is required.
- No setting matching "{settingKey}" was found.
- Unsupported page \"{page}\". Supported pages: {string.Join("
AI-assisted analysis of Devolutions/UniGetUI@9b1d7d0eab (2026-08-13).
Data as JSON: /api/errors/c0bc772f8bd4bb49.
Report an issue: GitHub.