coleam00/Archon · error · Error

--supersedes records a FRESH-lane rerun as replacing a prior

Error message

--supersedes records a FRESH-lane rerun as replacing a prior open item; it cannot be combined with --resume.

What it means

The workflow-start preflight rejects `--supersedes` together with `--resume`. Superseding marks a fresh-lane rerun as replacing a prior open item, while resume replays the prior run in its original lane — the two replacement semantics are incompatible, so the combination is refused.

Source

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

  }

  // 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` +
          '  Adoption resolves its own lane: reuse the adopted worktree, or cut a fresh one from its branch.'
      );
    }
  } else if (options.supersedesRunId !== undefined && options.resume) {
    throw new Error(
      '--supersedes records a FRESH-lane rerun as replacing a prior open item; it cannot be combined with --resume.'
    );
  }

  // Per-dispatch --base override, normalized once. Wins over repo config + the
  // codebase default for both the worktree cut-from (the provider request's
  // `baseOverride` below) and the PR target / $BASE_BRANCH (executeWorkflow's
  // `baseOverride` opt). Both halves need their own channel: the `baseBranch`
  // field on either side is the codebase-default FALLBACK and ranks below repo
  // config, so routing the flag through it would silently lose to a repo that
  // sets `worktree.baseBranch`.
  const flagBase = options.baseBranch?.trim() || undefined;

  // Reconcile workflow-level worktree policy with invocation flags.
  // The workflow YAML's `worktree.enabled` pins isolation regardless of caller —
  // a mismatch between policy and flags is a user error we surface loudly
  // rather than silently applying one side and ignoring the other.
  const pinnedEnabled = workflow.worktree?.enabled;

View on GitHub (pinned to 0773b97458)

Solutions

  1. Drop `--resume` and issue a fresh-lane rerun with `--supersedes <runId>`.
  2. Drop `--supersedes` if you only want to resume the original run without recording a replacement.

Example fix

// before
archon workflow start code-review --supersedes run_123 --resume
// after
archon workflow start code-review --supersedes run_123
Defensive patterns

Strategy: validation

Validate before calling

if (args.includes('--supersedes') && args.includes('--resume')) {
  throw new Error('--supersedes requires a fresh-lane rerun; drop --resume.');
}

Prevention

When it happens

Trigger: `archon workflow start <name> --supersedes <runId> --resume` — any invocation where supersedesRunId and resume are both set.

Common situations: Trying to both supersede a failed run and continue it in place; conflating 'replace this run' with 'resume this run'.

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/6d259d6f07b2e9e2. Report an issue: GitHub.