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

  1. Provide a non-empty setting key string.
  2. Call ListSettings() to enumerate valid setting keys (both enum name and resolved key string).
  3. 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

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


AI-assisted analysis of Devolutions/UniGetUI@9b1d7d0eab (2026-08-13). Data as JSON: /api/errors/c0bc772f8bd4bb49. Report an issue: GitHub.