eyaltoledano/claude-task-master · warning
Note: The following IDs were not found initially and were sk
Error message
Note: The following IDs were not found initially and were skipped: ${nonExistentIds.join(', ')} What it means
This is a non-fatal warning emitted during `task-master remove-subtask` (or similar multi-ID removal). The command collects IDs that did not match any task/subtask at the start, skips them, and warns via console.warn listing the missing IDs. The command may still exit(1) if any removals failed.
Source
Thrown at scripts/modules/commands.js:3524
boxen(
chalk.red(
`Operation completed with errors. Removed ${result.removedTasks.length} task(s)/subtask(s).`
) +
(result.message ? `\n\nDetails:\n${result.message}` : '') +
(result.error ? `\n\nErrors:\n${chalk.red(result.error)}` : ''),
{
padding: 1,
borderColor: 'red',
borderStyle: 'round'
}
)
);
process.exit(1); // Exit with error code if any part failed
}
// Log any initially non-existent IDs again for clarity
if (nonExistentIds.length > 0) {
console.warn(
chalk.yellow(
`Note: The following IDs were not found initially and were skipped: ${nonExistentIds.join(', ')}`
)
);
// Exit with error if any removals failed
if (result.removedTasks.length === 0) {
process.exit(1);
}
}
} catch (error) {
console.error(
chalk.red(`Error: ${error.message || 'An unknown error occurred'}`)
);
process.exit(1);
}
});
View on GitHub (pinned to c0c98d367c)
Solutions
- Verify each ID exists with `task-master list` (or `task-master show <id>`) before removal
- Check you are operating in the intended tag context (`task-master tags list`, `task-master use-tag <name>`)
- Correct typos in the ID list and re-run
- Ignore if the skip is intentional; the warning is informational but removals failing cause exit code 1
Example fix
// before task-master remove-subtask --id=1.2,9.9 // 9.9 doesn't exist // after task-master show 9.9 // confirm existence first task-master remove-subtask --id=1.2
Defensive patterns
Strategy: validation
Validate before calling
const ids = ['1.2','9.9'];
const data = JSON.parse(fs.readFileSync('.taskmaster/tasks.json','utf8'));
const existing = new Set();
for (const t of data.tags[currentTag].tasks) {
existing.add(String(t.id));
(t.subtasks||[]).forEach(s => existing.add(`${t.id}.${s.id}`));
}
const missing = ids.filter(id => !existing.has(id));
if (missing.length) throw new Error(`Unknown task IDs: ${missing.join(', ')}`); Type guard
const isKnownId = (id, allIds) => allIds.includes(String(id));
Prevention
- Run `task-master list` before batch removals
- Remember removals are tag-scoped; confirm the active tag first
- Keep IDs in sync when manually editing tasks.json
- Validate ID lists in scripts before invoking the CLI
When it happens
Trigger: Running `task-master remove-subtask` (or `tm remove-tasks`) with a comma-separated ID list where one or more IDs do not exist in tasks.json, e.g. typos or IDs from another tag.
Common situations: Stale IDs copied from an old tasks.json or different tag context; manual editing of task IDs; passing subtask IDs where parent IDs are expected.
Understand the failure class
Background: "Not found" and "does not exist" errors: why "Task not found", "No such folder", and "Can't find" fire when a lookup comes back empty — this error's family across 14 libraries.
Related errors
- MFA_VERIFICATION_FAILED
- MFA_VERIFICATION_FAILED
- Command execution error: ${result.error.message}
- Command failed with exit code ${result.status}: ${errorOutpu
- Task description is required
AI-assisted analysis of eyaltoledano/claude-task-master@c0c98d367c (2026-08-29).
Data as JSON: /api/errors/4faf2b7091f2def4.
Report an issue: GitHub.