eyaltoledano/claude-task-master · warning

Rule profile for "${profile}" not found. Valid profiles: ${R

Error message

Rule profile for "${profile}" not found. Valid profiles: ${RULE_PROFILES.join(', ')}. Skipping.

What it means

During rule profile processing in the CLI setup, each requested profile name is validated against the known RULE_PROFILES list. If a profile name is not recognized, a warning is printed listing valid profiles and that profile is skipped (continue) rather than aborting the whole setup. The remaining valid profiles are still processed.

Source

Thrown at src/utils/profiles.js:236

 * @param {string[]} profiles - Array of profile names to process
 * @param {string} projectRoot - Project root directory path
 * @param {string|undefined} modeOption - Operating mode option from CLI
 * @returns {Promise<Array<{profileName: string, success: number, failed: number}>>} Results for each profile
 */
export async function processRuleProfiles(profiles, projectRoot, modeOption) {
	const results = [];
	const mode = await getOperatingMode(modeOption);

	for (let i = 0; i < profiles.length; i++) {
		const profile = profiles[i];
		console.log(
			chalk.blue(
				`Processing profile ${i + 1}/${profiles.length}: ${profile}...`
			)
		);

		if (!isValidProfile(profile)) {
			console.warn(
				`Rule profile for "${profile}" not found. Valid profiles: ${RULE_PROFILES.join(', ')}. Skipping.`
			);
			continue;
		}

		const profileConfig = getRulesProfile(profile);
		const addResult = convertAllRulesToProfileRules(
			projectRoot,
			profileConfig,
			{
				mode
			}
		);

		results.push({
			profileName: profile,
			success: addResult.success,
			failed: addResult.failed

View on GitHub (pinned to c0c98d367c)

Solutions

  1. Correct the profile name to one of the valid values printed in the warning (compare against RULE_PROFILES output).
  2. Run `task-master rules --help` (or the interactive setup) to see the current list of supported profiles.
  3. If following a guide, check whether the profile was renamed in your installed version and update the command.
  4. Wrap profile processing to fail fast on invalid names if silent skipping is undesirable in your automation.

Example fix

// before
task-master rules add --profile cursorrules
// after
task-master rules add --profile cursor
Defensive patterns

Strategy: validation

Validate before calling

import { RULE_PROFILES, isValidProfile } from '../utils/profiles.js';
const requested = ['cursor', 'cursorrules'];
const invalid = requested.filter(p => !isValidProfile(p));
if (invalid.length) throw new Error(`Unknown profiles: ${invalid.join(', ')}. Valid: ${RULE_PROFILES.join(', ')}`);

Prevention

When it happens

Trigger: Running `task-master rules` / setup commands (registerCommands, addResults flows) with a --profile or profile list containing a typo or unsupported profile name, e.g. 'cursorrules' instead of 'cursor'.

Common situations: Typo in CLI flag; following outdated documentation or blog posts referencing renamed profiles; scripted invocations with stale profile names after a version upgrade renamed/removed a profile.

Understand the failure class

Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.

Related errors


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