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

  1. Verify each ID exists with `task-master list` (or `task-master show <id>`) before removal
  2. Check you are operating in the intended tag context (`task-master tags list`, `task-master use-tag <name>`)
  3. Correct typos in the ID list and re-run
  4. 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

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


AI-assisted analysis of eyaltoledano/claude-task-master@c0c98d367c (2026-08-29). Data as JSON: /api/errors/4faf2b7091f2def4. Report an issue: GitHub.