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

  1. Export the variable before running: ITO_ENABLE_SIXTYTWO_LIVE=1 ito --live-sixtytwo ...
  2. Verify with `echo $ITO_ENABLE_SIXTYTWO_LIVE` that it prints exactly 1.
  3. Fix the value if you used "true" or "yes" — only the string "1" is accepted.
  4. 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

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


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)