affaan-m/ECC · 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

Live node qualification is gated behind the environment variable ITO_ENABLE_SIXTYTWO_LIVE, which must be exactly '1'. The guard runs before any process is started and fails closed if the env var is unset or any other value, because live qualification forwards credentials and touches real nodes.

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 01e15490f0)

Solutions

  1. Export ITO_ENABLE_SIXTYTWO_LIVE=1 in the same shell before running the command
  2. Prefix the command inline: ITO_ENABLE_SIXTYTWO_LIVE=1 node scripts/ito.js ...
  3. Confirm with echo $ITO_ENABLE_SIXTYTWO_LIVE that the value is exactly 1

Example fix

// before
node scripts/ito.js qualify --live-sixtytwo ...
// after
ITO_ENABLE_SIXTYTWO_LIVE=1 node scripts/ito.js qualify --live-sixtytwo ...
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 node qualification');
}

Type guard

function isLiveQualificationEnabled(env) {
  return env.ITO_ENABLE_SIXTYTWO_LIVE === '1';
}

Try / catch

try { validateNodeQualificationArgs(args, process.env); }
catch (err) {
  if (/ITO_ENABLE_SIXTYTWO_LIVE=1/.test(err.message)) {
    console.error(`${err.message} Export it: export ITO_ENABLE_SIXTYTWO_LIVE=1`);
    process.exit(2);
  }
  throw err;
}

Prevention

When it happens

Trigger: Running a live-qualification command without exporting ITO_ENABLE_SIXTYTWO_LIVE=1, or setting it to true/yes/on (only the literal '1' is accepted).

Common situations: Forgetting to export the env var in a fresh shell, setting it in a different shell than the one running the command, or assuming a boolean-ish value like true works.

Related errors


AI-assisted analysis of affaan-m/ECC@01e15490f0 (2026-08-13). Data as JSON: /api/errors/ddcbcfca6cac3370. Report an issue: GitHub.