Devolutions/UniGetUI · error · InvalidOperationException

The secure setting key parameter is required.

Error message

The secure setting key parameter is required.

What it means

ResolveSettingKey throws when SettingKey is null, empty, or whitespace. A concrete key is required to address any secure setting.

Source

Thrown at src/UniGetUI.Interface.IpcApi/IpcSecureSettingsApi.cs:79

        SecureSettings.K key,
        string userName
    )
    {
        return new IpcSecureSettingInfo
        {
            Key = key.ToString(),
            Name = SecureSettings.ResolveKey(key),
            UserName = userName,
            IsCurrentUser = userName.Equals(Environment.UserName, StringComparison.OrdinalIgnoreCase),
            Enabled = SecureSettings.GetForUser(userName, key),
        };
    }

    private static SecureSettings.K ResolveSettingKey(string settingKey)
    {
        if (string.IsNullOrWhiteSpace(settingKey))
        {
            throw new InvalidOperationException("The secure setting key parameter is required.");
        }

        if (Enum.TryParse(settingKey, true, out SecureSettings.K enumKey) && enumKey != SecureSettings.K.Unset)
        {
            return enumKey;
        }

        foreach (var key in Enum.GetValues<SecureSettings.K>())
        {
            if (
                key != SecureSettings.K.Unset
                && SecureSettings.ResolveKey(key).Equals(settingKey, StringComparison.OrdinalIgnoreCase)
            )
            {
                return key;
            }
        }

View on GitHub (pinned to 9b1d7d0eab)

Solutions

  1. Always send a non-empty SettingKey (enum name or resolved key string)
  2. Validate non-empty client-side before the request
  3. Make settingKey required in the request schema

Example fix

// before
await IpcSecureSettingsApi.SetSettingAsync(
    new IpcSecureSettingRequest { Enabled = true });
// after
await IpcSecureSettingsApi.SetSettingAsync(
    new IpcSecureSettingRequest { SettingKey = "TelemetryEnabled", Enabled = true });
Defensive patterns

Strategy: validation

Validate before calling

if (string.IsNullOrWhiteSpace(request.SettingKey))
    throw new ArgumentException("SettingKey is required");

Prevention

When it happens

Trigger: Calling get/set secure-setting with the settingKey field omitted from the request body.

Common situations: Client JSON omitted the field; serializer defaulted SettingKey to ""; UI submitted an empty form.

Related errors


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