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
- Unset the variable: unset ECC_DRY_RUN (or remove it from the export in your shell profile/CI job)
- Remove the --dry-run flag from the ito invocation
- Scope dry-run settings per-command instead of globally when mixing ECC tools
- 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
- Never export ECC_DRY_RUN globally; scope it per-command when other ECC tools need it
- In CI wrappers, strip ECC_DRY_RUN before dispatching to ecc ito subcommands
- Document that ecc ito has no paper mode so no one tries to add --dry-run
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
- ECC_NASIKO_CLI_EXECUTABLE must be an absolute path.
- ENOENT
- must be an absolute path explicitly configured by the…
- memory is disabled in dry-run mode; no files were written.
- The canonical ito-compute-cli is unpublished and ECC will…
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)