Fission-AI/OpenSpec · error · RetirementBackupsRetainedError

${errors.join(' ')} The change remains archived and each lis

Error message

${errors.join(' ')} The change remains archived and each listed backup was retained for recovery.

What it means

Error "${errors.join(' ')} The change remains archived and each listed backup was retained for recovery." thrown in Fission-AI/OpenSpec.

Source

Thrown at src/core/archive.ts:1047

    const displacedPath = snapshot.displacedPath;
    try {
      if (
        snapshot.displacedFingerprint === undefined ||
        (await fingerprintMovablePath(displacedPath)) !== snapshot.displacedFingerprint
      ) {
        throw new Error('the displaced spec changed after retirement verification');
      }
      await finalizeRetiredSpec(snapshot.target, displacedPath, mainSpecsDir);
      snapshot.displacedPath = undefined;
    } catch (error) {
      errors.push(
        `Could not remove the committed retirement backup at ${displacedPath} ` +
          `(${error instanceof Error ? error.message : String(error)}).`
      );
    }
  }
  if (errors.length > 0) {
    throw new RetirementBackupsRetainedError(
      `${errors.join(' ')} The change remains archived and each listed backup was retained for recovery.`
    );
  }
}

export class ArchiveCommand {
  async execute(changeName?: string, options: ArchiveOptions = {}): Promise<void> {
    const json = !!options.json;

    let root: ResolvedOpenSpecRoot;
    try {
      root = await resolveOpenSpecRoot({
        ...(options.store !== undefined ? { store: options.store } : {}),
        ...(options.storePath !== undefined ? { storePath: options.storePath } : {}),
      });
    } catch (error) {
      if (json && isRootSelectionError(error)) {
        this.printJsonFailure(undefined, toArchiveDiagnostic(error));

View on GitHub (pinned to 6926ccb18a)

When it happens

Trigger: Thrown at src/core/archive.ts:1047 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Fission-AI/OpenSpec@6926ccb18a (2026-08-25). Data as JSON: /api/errors/d30b8863930c1565. Report an issue: GitHub.