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.failedView on GitHub (pinned to c0c98d367c)
Solutions
- Correct the profile name to one of the valid values printed in the warning (compare against RULE_PROFILES output).
- Run `task-master rules --help` (or the interactive setup) to see the current list of supported profiles.
- If following a guide, check whether the profile was renamed in your installed version and update the command.
- 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
- Validate profile names against isValidProfile() before invoking rules commands in scripts.
- Keep a constant list of profile names in your automation sourced from RULE_PROFILES, not hardcoded strings.
- Re-check profile names after upgrading task-master; profiles can be renamed.
- Prefer the interactive setup flow, which only offers valid profiles.
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
- Warning: Could not determine default model for role '${role}
- Rule profile for "${profile}" not found. Valid profiles: ${R
- MFA_VERIFICATION_FAILED
- MFA_VERIFICATION_FAILED
- Command execution error: ${result.error.message}
AI-assisted analysis of eyaltoledano/claude-task-master@c0c98d367c (2026-08-29).
Data as JSON: /api/errors/b582c562b409f05b.
Report an issue: GitHub.