affaan-m/ECC · error
Itô compute has no paper or dry-run success mode. No CLI ope
Error message
Itô compute has no paper or dry-run success mode. No CLI operation was invoked.
What it means
Thrown by parseArgs at scripts/ito.js:152 when ECC_DRY_RUN=1 is set in the environment OR --dry-run appears anywhere in the argv. The Itô bridge is a credential-bearing financial CLI that forwards to a real Itô client; there is intentionally no paper-trading or no-op success mode. The error exists to prevent a dry-run habit from silently masking the fact that no real operation ran — the operator would believe an RFQ or qualification happened when it did not.
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 01e15490f0)
Solutions
- Unset the env var for the ito invocation: `env -u ECC_DRY_RUN ecc ito status`.
- Remove --dry-run from the arguments; the ito bridge has no dry-run equivalent.
- If you genuinely need a non-mutating ito call, use `ecc ito auth` (validation-only) or `ecc ito status` (read-only) without --dry-run.
- Audit your shell rc / CI env for a global ECC_DRY_RUN export and scope it tightly.
Example fix
// before $ ECC_DRY_RUN=1 ecc ito status // after $ ecc ito status
Defensive patterns
Strategy: validation
Validate before calling
function assertNoDryRun(env, argv) {
if (env.ECC_DRY_RUN === '1' || argv.includes('--dry-run')) {
throw new Error('Refusing to invoke ecc ito under dry-run; unset ECC_DRY_RUN and remove --dry-run.');
}
}
// in the wrapper that invokes ecc ito
assertNoDryRun(process.env, process.argv.slice(2)); Prevention
- Never export ECC_DRY_RUN globally; scope it to the specific subcommand that needs it.
- Document in your team's runbook that `ecc ito` has no dry-run mode by design.
- In CI, explicitly `env -u ECC_DRY_RUN` around ito steps to insulate them from global config.
When it happens
Trigger: Any of: `ECC_DRY_RUN=1 ecc ito login`; `ecc ito status --dry-run`; `ecc ito find <opts> --dry-run`. The check runs before command parsing, so even `ecc ito --dry-run` (no subcommand) trips it. It also fires before the --json and SUPPORTED_COMMANDS checks at ito.js:157-169.
Common situations: A shell that exports ECC_DRY_RUN=1 globally for testing other ECC subcommands, then the operator runs `ecc ito ...` in the same shell expecting real behavior. CI pipelines that set ECC_DRY_RUN for safe invocation of unrelated ECC tooling also trip this when reaching an ito step.
Related errors
- Live node qualification requires ITO_ENABLE_SIXTYTWO_LIVE=1
- The canonical ito-compute-cli is unpublished and ECC will no
- ${EXECUTABLE_OVERRIDE} must be an absolute path explicitly c
- ${option} is required exactly once for live node qualificati
- ${option} requires a non-empty value for live node qualifica
AI-assisted analysis of affaan-m/ECC@01e15490f0 (2026-08-13).
Data as JSON: /api/errors/1fc68ae9d9dbb592.
Report an issue: GitHub.