BCUninstaller/Bulk-Crap-Uninstaller · warning · ArgumentException
No commands specified
Error message
No commands specified
What it means
ArgumentException thrown after the argument loop if _queryType is still None, meaning no command token (u/uninstall or l/list) was provided at all. The tool requires a command to know what to do.
Source
Thrown at source/WinUpdateHelper/Program.cs:99
case @"l":
case @"list":
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
- Always include a command: 'list' or 'uninstall <UpdateID>'.
- If calling programmatically, assert the argument array is non-empty and contains a command before launching.
- Add a usage/help printout when args.Length==0 to guide users.
Example fix
// before WinUpdateHelper.exe // after WinUpdateHelper.exe list
Defensive patterns
Strategy: validation
Validate before calling
if (!args.Any()) throw new ArgumentException("No commands specified"); Type guard
bool HasCommand(IEnumerable<string> args) =>
args.Any(a => new[]{"u","uninstall","l","list"}.Contains(a.ToLowerInvariant())); Prevention
- Always include a command token.
- In a wrapper, assert the arg array is non-empty and contains a command.
- Print usage guidance when args.Length==0.
When it happens
Trigger: Running the executable with no args, or with only an UpdateID and no command, or with only unrecognized tokens that never set _queryType.
Common situations: Bare 'WinUpdateHelper.exe' with no arguments. Passing only an ID because the user assumed positional semantics. A wrapper that strips args in error and launches with an empty array.
Related errors
- Multiple commands specified
- Unknown argument: {arg}
- Multiple UpdateIDs specified
- No UpdateID 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/ffab006126862263.
Report an issue: GitHub.