coleam00/Archon · error · Error

--resume and --input are mutually exclusive. A resume repl

Error message

--resume and --input are mutually exclusive.
  A resume replays the original invocation's inputs, recorded on the run.
  Drop --input to resume, or start a fresh run to supply different values.

What it means

The workflow-start preflight rejects `--resume` combined with non-empty `--input` values. A resume replays the inputs recorded on the original run record, so supplying new inputs would create ambiguity about which values the resumed run should use. The CLI fails loudly rather than picking one side.

Source

Thrown at packages/cli/src/commands/workflow.ts:1847

    throw new Error(
      '--from/--from-branch has no effect with --no-worktree.\n' +
        'Remove --from or drop --no-worktree.'
    );
  }
  if (options.noWorktree && options.baseBranch !== undefined) {
    throw new Error(
      '--base has no effect with --no-worktree.\n' + 'Remove --base or drop --no-worktree.'
    );
  }
  if (options.resume && options.branchName !== undefined) {
    throw new Error(
      '--resume and --branch are mutually exclusive.\n' +
        '  --resume reuses the existing worktree from the failed run.\n' +
        '  Remove --branch when using --resume.'
    );
  }
  if (options.resume && options.inputs !== undefined && options.inputs.length > 0) {
    throw new Error(
      '--resume and --input are mutually exclusive.\n' +
        "  A resume replays the original invocation's inputs, recorded on the run.\n" +
        '  Drop --input to resume, or start a fresh run to supply different values.'
    );
  }

  // Between-run continuation (#2747): adoption dictates the lane itself, so the
  // lane-choosing flags are refused rather than silently overridden.
  if (options.adoptRunId !== undefined) {
    const conflicts: string[] = [];
    if (options.resume) conflicts.push('--resume');
    if (options.branchName !== undefined) conflicts.push('--branch');
    if (options.fromBranch !== undefined) conflicts.push('--from/--from-branch');
    if (options.baseBranch !== undefined) conflicts.push('--base');
    if (options.noWorktree) conflicts.push('--no-worktree');
    if (conflicts.length > 0) {
      throw new Error(
        `--adopt and ${conflicts.join('/')} are mutually exclusive.\n` +

View on GitHub (pinned to 0773b97458)

Solutions

  1. Drop the `--input` flags if you want the original invocation's inputs replayed.
  2. Start a fresh run (no `--resume`) and supply the new `--input` values there if you need different parameters.

Example fix

// before
archon workflow start code-review --resume --input pr=42
// after (replay original inputs)
archon workflow start code-review --resume
// after (new inputs require a fresh run)
archon workflow start code-review --input pr=42
Defensive patterns

Strategy: validation

Validate before calling

if (args.includes('--resume') && args.some(a => a.startsWith('--input'))) {
  throw new Error('--resume replays recorded inputs; use a fresh run for new inputs.');
}

Prevention

When it happens

Trigger: `archon workflow start <name> --resume --input key=value ...` — any resume where options.inputs contains at least one entry.

Common situations: Trying to 're-run with tweaked parameters' using `--resume`; misunderstanding that resume replays original inputs and is not a parameterized re-execution.

Understand the failure class

Background: "mutually exclusive" flag errors: what "can't supply both nx and xx", "--raw is not compatible with -i" and "cannot be used with" mean, and how to fix them — this error's family across 29 libraries.

Related errors


AI-assisted analysis of coleam00/Archon@0773b97458 (2026-09-01). Data as JSON: /api/errors/febcc8058af299e1. Report an issue: GitHub.