affaan-m/ECC · error · Error

Itô compute has no paper or dry-run success mode. No CLI…

Error message

Itô compute has no paper or dry-run success mode. No CLI operation was invoked.

What it means

parseArgs deliberately refuses any dry-run mode: if ECC_DRY_RUN=1 is set in the environment or --dry-run is passed, it throws because the Itô compute CLI has no paper/dry-run success mode — there is no safe way to simulate real compute operations. No operation is invoked and the command fails fast.

Solutions

  1. Unset the variable: unset ECC_DRY_RUN (or remove it from the export in your shell profile/CI job)
  2. Remove the --dry-run flag from the ito invocation
  3. Scope dry-run settings per-command instead of globally when mixing ECC tools
  4. Use the real operation in a controlled environment since no paper mode exists for ito

Example fix

// before
ECC_DRY_RUN=1 ecc ito status
// after
env -u ECC_DRY_RUN ecc ito status
Defensive patterns

Strategy: validation

Validate before calling

if (process.env.ECC_DRY_RUN === '1' || process.argv.includes('--dry-run')) {
  throw new Error('ecc ito does not support dry-run; unset ECC_DRY_RUN and drop --dry-run');
}

Try / catch

try {
  runIto(args);
} catch (e) {
  if (e.message.includes('dry-run')) {
    const { ECC_DRY_RUN, ...cleanEnv } = process.env;
    runIto(args.filter(a => a !== '--dry-run'), cleanEnv);
  } else throw e;
}

Prevention

When it happens

Trigger: Running `ECC_DRY_RUN=1 ecc ito status`, or `ecc ito evals --dry-run ...`, or any ecc ito subcommand when the environment variable ECC_DRY_RUN is set to "1" (e.g. exported globally in a CI or shell profile).

Common situations: Exporting ECC_DRY_RUN=1 for other ECC tools and forgetting to scope it; CI harnesses that blanket-set dry-run variables; assuming a --dry-run flag works uniformly across all ECC subcommands.

Understand the failure class

Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.

Related errors


AI-assisted analysis of affaan-m/ECC@8321021c54 (2026-09-16). Data as JSON: /api/errors/1fc68ae9d9dbb592. Report an issue: GitHub.

Appendix: source

Thrown at scripts/ito.js:152

  } catch {
    throw new Error(
      "--config-dir must exist and contain a regular sixtytwo.yaml before any process is started."
    );
  }
}

function parseArgs(argv, environment = process.env) {
  const args = [...argv];
  if (
    args.length === 0
    || args.includes("--help")
    || args.includes("-h")
  ) {
    return Object.freeze({ help: true, invocationArgs: [] });
  }

  if (environment.ECC_DRY_RUN === "1" || args.includes("--dry-run")) {
    throw new Error(
      "Itô compute has no paper or dry-run success mode. No CLI operation was invoked."
    );
  }

  const jsonIndexes = args
    .map((value, index) => (value === "--json" ? index : -1))
    .filter((index) => index >= 0);
  if (jsonIndexes.length > 1) {
    throw new Error("--json may only be provided once");
  }
  const withoutJson = args.filter((value) => value !== "--json");
  const command = withoutJson.shift();
  if (!SUPPORTED_COMMANDS.includes(command)) {
    throw new Error(
      `Unsupported Itô command "${command || "(missing)"}"; ECC permits only login, logout, auth, find, status, and evals.`
    );
  }
  if (command === "auth" && withoutJson.includes("--no-browser")) {

View on GitHub (pinned to 8321021c54)