BCUninstaller/Bulk-Crap-Uninstaller · warning · ArgumentException
No UpdateID specified
Error message
No UpdateID specified
What it means
ArgumentException thrown after the argument loop when _queryType is Uninstall but _updateId is still null. The uninstall command requires an UpdateID operand; omitting it is an error.
Source
Thrown at source/WinUpdateHelper/Program.cs:102
if (_queryType != QueryType.None) throw new ArgumentException(@"Multiple commands specified");
_queryType = QueryType.List;
break;
default:
if (_queryType != QueryType.Uninstall)
throw new ArgumentException($@"Unknown argument: {arg}");
if (_updateId != null)
throw new ArgumentException(@"Multiple UpdateIDs specified");
_updateId = arg;
break;
}
}
if (_queryType == QueryType.None)
throw new ArgumentException(@"No commands specified");
if (_queryType == QueryType.Uninstall && _updateId == null)
throw new ArgumentException(@"No UpdateID specified");
}
private enum QueryType
{
None,
Uninstall,
List
}
}
}View on GitHub (pinned to 608321de98)
Solutions
- Supply the UpdateID immediately after the uninstall command.
- In a wrapper, assert the ID variable is non-empty before building the command line.
- Run 'list' first to obtain valid UpdateIDs if unsure of the value.
Example fix
// before WinUpdateHelper.exe uninstall // after WinUpdateHelper.exe uninstall 12345678-1234-1234-1234-1234567890ab
Defensive patterns
Strategy: validation
Validate before calling
var lower = args.Select(a => a.ToLowerInvariant()).ToList();
if (lower.Contains("u") || lower.Contains("uninstall"))
if (args.Length < 2) throw new ArgumentException("No UpdateID specified"); Type guard
bool HasUninstallId(IList<string> args)
{
var i = args.Select((a,idx) => (a.ToLowerInvariant(), idx))
.FirstOrDefault(t => t.Item1 == "u" || t.Item1 == "uninstall").Item2;
return i >= 0 && i + 1 < args.Count && !string.IsNullOrWhiteSpace(args[i + 1]);
} Prevention
- Always pass an UpdateID after the uninstall command.
- In wrappers, assert the ID variable is non-empty before building the command line.
- Use 'list' to discover valid IDs first.
When it happens
Trigger: Running 'uninstall' or 'u' with no following UpdateID token. The ID token was consumed/rejected before reaching the assignment (e.g. it matched a command word by accident).
Common situations: User runs 'WinUpdateHelper uninstall' expecting a prompt. A wrapper passes the command but not the ID due to an empty variable. Whitespace-only ID that collapses to nothing.
Related errors
- Multiple commands specified
- Unknown argument: {arg}
- Multiple UpdateIDs specified
- No commands specified
- Could not find a tweak with this name to uninstall
AI-assisted analysis of BCUninstaller/Bulk-Crap-Uninstaller@608321de98 (2026-08-13).
Data as JSON: /api/errors/b2b359c3c2500e6b.
Report an issue: GitHub.