affaan-m/ECC · error · Error
Missing issue number.
Error message
Missing issue number.
What it means
Thrown by dispatchCommand() in scripts/github-coordination.js when the 'claim' subcommand is invoked without an issue number. The code checks `if (!options.issueNumber)` before delegating to applyClaim. The issue number identifies which GitHub issue to claim.
Source
Thrown at scripts/github-coordination.js:123
} else {
throw new Error(`Unknown argument: ${arg}`);
}
}
if (!parsed.command) parsed.command = 'sync';
if (!parsed.issueNumber && parsed.positionals.length > 0) {
parsed.issueNumber = normalizeIssueNumber(parsed.positionals[0]);
}
return parsed;
}
function dispatchCommand(options, ctx) {
const { store, policy, rootDir } = ctx;
const base = { configPath: options.configPath, dryRun: options.dryRun };
if (options.command === 'claim') {
if (!options.issueNumber) throw new Error('Missing issue number.');
return applyClaim(options.repo, options.issueNumber, {
...base, actor: options.actor, branch: options.branch, owner: options.actor,
projectState: options.projectState, review: options.review,
status: options.status, validation: options.validation,
}, { store, policy, rootDir });
}
if (options.command === 'sync') {
return applySync(options.repo, { ...base, limit: options.limit }, { store, policy, rootDir });
}
if (options.command === 'validate') {
if (!options.issueNumber) throw new Error('Missing issue number.');
return applyValidate(options.repo, options.issueNumber, base, { store, policy, rootDir });
}
if (options.command === 'publish') {
if (!options.issueNumber) throw new Error('Missing issue number.');
return applyPublish(options.repo, options.issueNumber, base, { store, policy, rootDir });
}
if (options.command === 'review') {View on GitHub (pinned to 01e15490f0)
Solutions
- Add --issue <number> or pass the issue number as a positional: `claim owner/repo 42`.
- Verify normalizeIssueNumber accepts your format (should be numeric or #N form).
- Run with --help to see the required arguments for the claim command.
Example fix
// before node scripts/github-coordination.js claim --repo owner/repo // after node scripts/github-coordination.js claim --repo owner/repo --issue 42
Defensive patterns
Strategy: validation
Validate before calling
if (options.command === 'claim' && !options.issueNumber) {
console.error('The claim command requires --issue <number>.');
process.exit(1);
} Type guard
function hasIssueNumber(options) {
return options.issueNumber != null && options.issueNumber !== '' && !Number.isNaN(options.issueNumber);
} Prevention
- Always include --issue for commands that require it.
- Build issue numbers from validated upstream data in automation.
- Add a pre-flight check in CI scripts that verifies required flags.
When it happens
Trigger: Running `node scripts/github-coordination.js claim --repo owner/repo` without providing --issue <n> or a positional issue number. The parser leaves options.issueNumber undefined.
Common situations: Forgetting the --issue flag, providing a malformed issue number that normalizeIssueNumber rejects (returns falsy), or expecting a default issue from context that does not exist.
Related errors
- Missing --repo <owner/repo>.
- Missing GitHub repo. Pass --repo <owner/repo>.
- Missing work item id. Pass <id> or --id <id>.
- Missing --title for a new work item.
- claim requires --owner <name>.
AI-assisted analysis of affaan-m/ECC@01e15490f0 (2026-08-13).
Data as JSON: /api/errors/91fb7c8ef470fe46.
Report an issue: GitHub.