affaan-m/ECC · error · Error
Live node qualification requires ITO_ENABLE_SIXTYTWO_LIVE=1…
Error message
Live node qualification requires ITO_ENABLE_SIXTYTWO_LIVE=1 before any process is started.
What it means
validateNodeQualificationArgs() is a safety gate for live node qualification: it requires the environment variable ITO_ENABLE_SIXTYTWO_LIVE to be exactly "1" before any process is spawned. This opt-in switch prevents accidentally launching real live qualification processes. Without it the command is rejected up front.
Solutions
- Export the variable before running: ITO_ENABLE_SIXTYTWO_LIVE=1 ito --live-sixtytwo ...
- Verify with `echo $ITO_ENABLE_SIXTYTWO_LIVE` that it prints exactly 1.
- Fix the value if you used "true" or "yes" — only the string "1" is accepted.
- Add the export to your CI job/runner environment setup if it keeps disappearing.
Example fix
// before ito --live-sixtytwo --cluster prod --nodes node-a # ITO_ENABLE_SIXTYTWO_LIVE unset // after ITO_ENABLE_SIXTYTWO_LIVE=1 ito --live-sixtytwo --cluster prod --nodes node-a
Defensive patterns
Strategy: validation
Validate before calling
if (process.env.ITO_ENABLE_SIXTYTWO_LIVE !== '1') { throw new Error('Set ITO_ENABLE_SIXTYTWO_LIVE=1 to enable live qualification'); } Try / catch
try { runQualification(args); } catch (e) { if (e.message.includes('ITO_ENABLE_SIXTYTWO_LIVE')) { console.error('Export ITO_ENABLE_SIXTYTWO_LIVE=1 before running live qualification'); process.exit(2); } throw e; } Prevention
- Set the env var in CI/runner environment config, not per-command, so it is never missing.
- Remember the only accepted value is the string "1" — not true/yes/on.
- Deliberately leave the var unset in dev shells to keep the safety gate closed.
When it happens
Trigger: Running the live qualification path (e.g. with --live-sixtytwo) in any environment where process.env.ITO_ENABLE_SIXTYTWO_LIFE !== "1" — unset, "0", "true", or any other value.
Common situations: New CI runner or fresh shell lacking the exported env var; users setting ITO_ENABLE_SIXTYTWO_LIVE=true instead of =1; running locally after copying a command that assumed the env var was already set.
Related errors
- Live node qualification requires --live-sixtytwo exactly…
- live transport requires TASTE_FORGE_ALLOW_LIVE=1
- memory is disabled in dry-run mode; no files were written.
- Agents directory not found
- --all-harnesses and --harness are mutually exclusive.
AI-assisted analysis of affaan-m/ECC@8321021c54 (2026-09-16).
Data as JSON: /api/errors/ddcbcfca6cac3370.
Report an issue: GitHub.
Appendix: source
Thrown at scripts/ito.js:108
}
function requiredOptionValue(args, option) {
const indexes = args
.map((value, index) => (value === option ? index : -1))
.filter((index) => index >= 0);
if (indexes.length !== 1) {
throw new Error(`${option} is required exactly once for live node qualification.`);
}
const value = args[indexes[0] + 1];
if (!value?.trim() || value.startsWith("--")) {
throw new Error(`${option} requires a non-empty value for live node qualification.`);
}
return value;
}
function validateNodeQualificationArgs(args, environment) {
if (environment.ITO_ENABLE_SIXTYTWO_LIVE !== "1") {
throw new Error(
"Live node qualification requires ITO_ENABLE_SIXTYTWO_LIVE=1 before any process is started."
);
}
if (args.filter((value) => value === "--live-sixtytwo").length !== 1) {
throw new Error(
"Live node qualification requires --live-sixtytwo exactly once before any process is started."
);
}
requiredOptionValue(args, "--cluster");
const nodes = requiredOptionValue(args, "--nodes");
if (!nodes.split(",").every((node) => node.trim().length > 0)) {
throw new Error("--nodes must explicitly list one or more non-empty nodes.");
}
const configDirectory = requiredOptionValue(args, "--config-dir");
if (!path.isAbsolute(configDirectory)) {
throw new Error("--config-dir must be an existing absolute directory.");
}
try {View on GitHub (pinned to 8321021c54)