affaan-m/ECC · error
SETUP_FAILED
SETUP_FAILED
Error message
${error.message} What it means
printError is setup's last-resort error reporter: an error escaped the setup flow and its message is printed (or serialized for --json), with structured ClaudeSetupError payloads preserved when available.
Source
Thrown at scripts/setup.js:322
return;
}
process.stdout.write(`\nECC ${result.action} ${result.pluginId} at ${result.scope} scope.\n`);
if (result.sourceScope) {
process.stdout.write(`Previous scope: ${result.sourceScope}\n`);
}
process.stdout.write(`Hook preference: ${result.hooks}\n`);
if (result.restartRequired) {
process.stdout.write('Restart Claude Code or run /reload-plugins to load the updated plugin.\n');
}
}
function printError(error, json) {
if (json) {
const payload = error instanceof ClaudeSetupError
? error.toJSON()
: {
error: {
code: 'SETUP_FAILED',
message: error.message,
phase: 'cli',
observedScopes: [],
recovery: [],
},
};
process.stderr.write(`${JSON.stringify(payload, null, 2)}\n`);
return;
}
process.stderr.write(`Error: ${error.message}\n`);
}
function isInteractiveCancellation(error) {
return Boolean(error && (
error.code === 'ABORT_ERR'
|| /aborted with ctrl\+d|readline was closed/i.test(error.message || '')
));
}View on GitHub (pinned to 06c5e118c4)
Solutions
- Inspect the underlying error detail in the message (stderr/log/HTTP status), fix the cause, and retry.
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Triggered when setup.js rejects the current invocation: <value>
Common situations: Occurs while running scripts/setup.js with invalid arguments, missing flags, or a failing external dependency; the guard at scripts/setup.js:322 aborts the command with this message.
AI-assisted analysis of affaan-m/ECC@06c5e118c4 (2026-08-18).
Data as JSON: /api/errors/272c493e3ed8e9db.
Report an issue: GitHub.