{"record":{"id":"d30b8863930c1565","repo":"Fission-AI/OpenSpec","slug":"errors-join-the-change-remains-archived-an","errorCode":null,"errorMessage":"${errors.join(' ')} The change remains archived and each listed backup was retained for recovery.","messagePattern":"(.+?) The change remains archived and each listed backup was retained for recovery\\.","errorType":"exception","errorClass":"RetirementBackupsRetainedError","httpStatus":null,"severity":"error","filePath":"src/core/archive.ts","lineNumber":1047,"sourceCode":"    const displacedPath = snapshot.displacedPath;\n    try {\n      if (\n        snapshot.displacedFingerprint === undefined ||\n        (await fingerprintMovablePath(displacedPath)) !== snapshot.displacedFingerprint\n      ) {\n        throw new Error('the displaced spec changed after retirement verification');\n      }\n      await finalizeRetiredSpec(snapshot.target, displacedPath, mainSpecsDir);\n      snapshot.displacedPath = undefined;\n    } catch (error) {\n      errors.push(\n        `Could not remove the committed retirement backup at ${displacedPath} ` +\n          `(${error instanceof Error ? error.message : String(error)}).`\n      );\n    }\n  }\n  if (errors.length > 0) {\n    throw new RetirementBackupsRetainedError(\n      `${errors.join(' ')} The change remains archived and each listed backup was retained for recovery.`\n    );\n  }\n}\n\nexport class ArchiveCommand {\n  async execute(changeName?: string, options: ArchiveOptions = {}): Promise<void> {\n    const json = !!options.json;\n\n    let root: ResolvedOpenSpecRoot;\n    try {\n      root = await resolveOpenSpecRoot({\n        ...(options.store !== undefined ? { store: options.store } : {}),\n        ...(options.storePath !== undefined ? { storePath: options.storePath } : {}),\n      });\n    } catch (error) {\n      if (json && isRootSelectionError(error)) {\n        this.printJsonFailure(undefined, toArchiveDiagnostic(error));","sourceCodeStart":1029,"sourceCodeEnd":1065,"githubUrl":"https://github.com/Fission-AI/OpenSpec/blob/6926ccb18afa4ff621112813e9968334576ee11a/src/core/archive.ts#L1029-L1065","documentation":"Error \"${errors.join(' ')} The change remains archived and each listed backup was retained for recovery.\" thrown in Fission-AI/OpenSpec.","triggerScenarios":"Thrown at src/core/archive.ts:1047 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6926ccb18afa4ff621112813e9968334576ee11a","analyzedAt":"2026-08-25T12:29:45.729Z","schemaVersion":2},"datasetVersion":"2026-08-25T16:17:27.014Z"}