Devolutions/UniGetUI · error · InvalidOperationException
No secure setting matching "{settingKey}" was found.
Error message
No secure setting matching "{settingKey}" was found. What it means
ResolveSettingKey throws when SettingKey matches neither a SecureSettings.K enum name (case-insensitive) nor any SecureSettings.ResolveKey string. The supplied key is not a known secure-setting identifier.
Source
Thrown at src/UniGetUI.Interface.IpcApi/IpcSecureSettingsApi.cs:98
}
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;
}
}
throw new InvalidOperationException($"No secure setting matching \"{settingKey}\" was found.");
}
private static string ResolveUserName(string? userName)
{
return string.IsNullOrWhiteSpace(userName) ? Environment.UserName : userName.Trim();
}
}
View on GitHub (pinned to 9b1d7d0eab)
Solutions
- List valid keys via IpcSecureSettingsApi.ListSettings() and use a returned Key/Name
- Match exactly one of the enum names or resolved key strings
- Re-fetch the key list on version upgrade
Example fix
// before
IpcSecureSettingsApi.GetSetting("DisableTelemetry"); // wrong key
// after
var key = IpcSecureSettingsApi.ListSettings()
.First(s => s.Name.Equals(want, StringComparison.OrdinalIgnoreCase)).Key;
IpcSecureSettingsApi.GetSetting(key); Defensive patterns
Strategy: validation
Validate before calling
var validKeys = IpcSecureSettingsApi.ListSettings()
.Select(s => s.Key).ToHashSet(StringComparer.OrdinalIgnoreCase);
if (!validKeys.Contains(settingKey))
throw new ArgumentException($"Unknown secure key: {settingKey}"); Prevention
- Source keys from ListSettings, not from memory
- Re-validate after upgrades
When it happens
Trigger: Passing a setting key spelling that is not a defined secure setting (e.g. a non-secure Settings.K name, a renamed key, or a typo).
Common situations: Using a plain setting name where a secure key is expected; renamed key across versions; typo.
Related errors
- Custom manager paths are disabled by secure settings.
- Unsupported retry mode "{retryMode}".
- Could not update secure setting "{key}" for user "{userName}
- The secure setting key parameter is required.
- GitHub request failed with HTTP {(int)response.StatusCode} (
AI-assisted analysis of Devolutions/UniGetUI@9b1d7d0eab (2026-08-13).
Data as JSON: /api/errors/2ddaa74cae25a80f.
Report an issue: GitHub.