affaan-m/ECC · error
Selection excludes every requested install module
Error message
Selection excludes every requested install module
What it means
After exclusions are applied, if every requested module was removed by excludedComponentIds/exclusions, the plan would be empty and resolveInstallPlan throws. This distinguishes 'you asked for nothing' (error 277) from 'you asked for something but excluded all of it'.
Solutions
- Remove or narrow the exclusion list so at least one requested module survives
- Exclude a different component than the ones included
- Add more modules/components to the include side
- Validate overlap of include/exclude sets in your CLI before calling
Example fix
// before
resolveInstallPlan({ profileId: 'standard', excludeComponentIds: ['skills/tdd-workflow','skills/security-review','skills/api-design'] }) // excludes all standard modules
// after
resolveInstallPlan({ profileId: 'standard', excludeComponentIds: ['skills/api-design'] }) Defensive patterns
Strategy: validation
Validate before calling
const manifests = loadInstallManifests();
const requested = new Set([
...(manifests.profiles[options.profileId]?.modules ?? []),
...(options.includeModuleIds ?? []),
]);
const excluded = new Set((options.excludeComponentIds ?? []).flatMap(id => manifests.componentsById.get(id)?.modules ?? []));
if ([...requested].every(m => excluded.has(m))) {
throw new Error('exclusions remove every requested module');
} Type guard
function leavesAnyRequestedModule(requestedIds, excludedModuleIds) {
const ex = new Set(excludedModuleIds);
return requestedIds.some(id => !ex.has(id));
} Try / catch
try {
const plan = resolveInstallPlan(options);
} catch (err) {
if (err.message === 'Selection excludes every requested install module') {
console.error('Your include/exclude selections conflict; remove some exclusions.'); process.exitCode = 2;
} else throw err;
} Prevention
- Check overlap between include and exclude lists before building the plan
- Warn users when an exclusion removes most of a profile
- Keep exclusion lists minimal and explicit
When it happens
Trigger: resolveInstallPlan({ profileId: 'standard', includeComponentIds: ['agents/x'], excludeComponentIds: ['agents/x'] }) or excluding components whose module set covers all requested modules.
Common situations: Include and exclude flags that overlap completely, a profile consisting of one component that is also excluded, or scripted exclusion lists that grew to cover everything.
Understand the failure class
Background: EmptyResultError / "no results found": when an API or scraper succeeds but returns zero rows — this error's family across 9 libraries.
Related errors
- A normalized install request is required
- Invalid install-state
- Legacy language arguments cannot be combined with…
- No install profile, module IDs, included components, or…
- Unknown install module
AI-assisted analysis of affaan-m/ECC@8321021c54 (2026-09-16).
Data as JSON: /api/errors/c6d070412654270c.
Report an issue: GitHub.
Appendix: source
Thrown at scripts/lib/install-manifests.js:622
? {
repoRoot: manifests.repoRoot,
projectRoot: validatedProjectRoot || manifests.repoRoot,
homeDir: validatedHomeDir || os.homedir(),
env: resolveInvocationEnvironment(options),
}
: null;
const targetAdapter = target ? getInstallTargetAdapter(target) : null;
const effectiveRequestedIds = dedupeStrings(
requestedModuleIds.filter(moduleId => !excludedModuleOwners.has(moduleId))
);
if (requestedModuleIds.length === 0) {
throw new Error('No install profile, module IDs, or included component IDs were provided');
}
if (effectiveRequestedIds.length === 0) {
throw new Error('Selection excludes every requested install module');
}
const selectedIds = new Set();
const skippedTargetIds = new Set();
const excludedIds = new Set([
...excludedModuleIds,
...targetDefaultExclusions.map(exclusion => exclusion.moduleId),
]);
const visitingIds = new Set();
const resolvedIds = new Set();
function resolveModule(moduleId, dependencyOf, rootRequesterId) {
const module = manifests.modulesById.get(moduleId);
if (!module) {
throw new Error(`Unknown install module: ${moduleId}`);
}
if (excludedModuleOwners.has(moduleId)) {View on GitHub (pinned to 8321021c54)