{"record":{"id":"aad8fd6f420c5ea3","repo":"Fission-AI/OpenSpec","slug":"spec-inputs-for-proposed-update-id-changed-wh","errorCode":null,"errorMessage":"Spec inputs for '${proposed.update.id}' changed while archive was awaiting confirmation. No files were changed; review the new content and rerun.","messagePattern":"Spec inputs for '(.+?)' changed while archive was awaiting confirmation\\. No files were changed; review the new content and rerun\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/core/archive.ts","lineNumber":1544,"sourceCode":"                );\n              }\n              const currentUpdates = await findSpecUpdates(changeDir, mainSpecsDir);\n              const currentById = new Map(currentUpdates.map((update) => [update.id, update]));\n              if (currentUpdates.length !== prepared.length) {\n                throw new Error('The change specs changed while archive was awaiting confirmation.');\n              }\n              for (const proposed of prepared) {\n                const current = currentById.get(proposed.update.id);\n                if (!current) {\n                  throw new Error(\n                    `The delta for '${proposed.update.id}' changed while archive was awaiting confirmation.`\n                  );\n                }\n                if (\n                  (await fingerprintPath(current.source)) !== proposed.sourceFingerprint ||\n                  (await fingerprintPath(current.target)) !== proposed.targetFingerprint\n                ) {\n                  throw new Error(\n                    `Spec inputs for '${proposed.update.id}' changed while archive was awaiting confirmation. ` +\n                      'No files were changed; review the new content and rerun.'\n                  );\n                }\n                const rebuilt = await buildUpdatedSpec(current, changeName!, { silent: true });\n                const outcome = await decideSpecOutcome(\n                  current,\n                  rebuilt,\n                  skipValidation,\n                  retirementDeclared\n                );\n                if (\n                  current.exists !== proposed.update.exists ||\n                  rebuilt.rebuilt !== proposed.rebuilt ||\n                  JSON.stringify(rebuilt.counts) !== JSON.stringify(proposed.counts) ||\n                  outcome !== proposed.outcome\n                ) {\n                  throw new Error(","sourceCodeStart":1526,"sourceCodeEnd":1562,"githubUrl":"https://github.com/Fission-AI/OpenSpec/blob/6926ccb18afa4ff621112813e9968334576ee11a/src/core/archive.ts#L1526-L1562","documentation":"Thrown during post-confirmation re-validation when, for a prepared spec update, any pre-build fingerprint (source, target, or source content) differs from what is now on disk. Fired because the main spec or delta file changed while the user was answering the confirmation prompt; nothing has been written yet, so the user can safely review and rerun.","triggerScenarios":"Thrown at src/core/archive.ts:1544 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Review the new spec/delta content, then re-run the archive","Stop concurrent editors before re-running"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6926ccb18afa4ff621112813e9968334576ee11a","analyzedAt":"2026-08-25T12:29:45.729Z","contentChangedAt":"2026-08-25T12:29:45.729Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}