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
- Drop the `--input` flags if you want the original invocation's inputs replayed.
- 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
- Decide up front: resume = same inputs, fresh run = new inputs.
- For parameter sweeps, script fresh runs instead of mutating resume commands.
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
- --resume and --branch are mutually exclusive. --resume reu
- --supersedes records a FRESH-lane rerun as replacing a prior
- --resume and --config are mutually exclusive. A resumed run
- --resume and --model are mutually exclusive. A resumed run k
- --base has no effect with --no-worktree. Remove --base or dr
AI-assisted analysis of coleam00/Archon@0773b97458 (2026-09-01).
Data as JSON: /api/errors/febcc8058af299e1.
Report an issue: GitHub.