{"record":{"id":"67778aae15fe6300","repo":"Fission-AI/OpenSpec","slug":"the-delta-for-proposed-update-id-changed-whil","errorCode":null,"errorMessage":"The delta for '${proposed.update.id}' changed while archive was awaiting confirmation.","messagePattern":"The delta for '(.+?)' changed while archive was awaiting confirmation\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/core/archive.ts","lineNumber":1536,"sourceCode":"            try {\n              const currentRetirementMarker = readRetireCapabilitiesMarker(changeDir);\n              if (\n                currentRetirementMarker.declared !== retirementMarker.declared ||\n                currentRetirementMarker.invalidReason !== retirementMarker.invalidReason\n              ) {\n                throw new Error(\n                  `The ${METADATA_FILENAME} retirement authorization changed while archive was awaiting confirmation.`\n                );\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","sourceCodeStart":1518,"sourceCodeEnd":1554,"githubUrl":"https://github.com/Fission-AI/OpenSpec/blob/6926ccb18afa4ff621112813e9968334576ee11a/src/core/archive.ts#L1518-L1554","documentation":"Thrown during post-confirmation re-validation when a spec delta that was prepared before the prompt no longer exists among the current updates (its id vanished), or the current update for that id changed such that the delta differs. Indicates the specific delta file was edited or deleted while the confirmation was open; archive refuses to apply a stale delta.","triggerScenarios":"Thrown at src/core/archive.ts:1536 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Review the new delta content and re-run the archive","Avoid editing change deltas while an archive prompt is open"],"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"}