Fission-AI/OpenSpec · error · Error
The ${METADATA_FILENAME} retirement authorization changed be
Error message
The ${METADATA_FILENAME} retirement authorization changed before archive could complete. What it means
Error "The ${METADATA_FILENAME} retirement authorization changed before archive could complete." thrown in Fission-AI/OpenSpec.
Source
Thrown at src/core/archive.ts:809
}
/** Fail closed if the metadata authorizing a retirement leaves its snapshot. */
async function assertRetirementAuthorization(
changeDir: string,
expectedFingerprint: string,
options: { verifyMarker?: boolean } = {}
): Promise<void> {
const metadataPath = path.join(changeDir, METADATA_FILENAME);
const before = await fingerprintPortableContent(metadataPath);
const markerStillDeclared =
options.verifyMarker === false || readRetireCapabilitiesMarker(changeDir).declared;
const after = await fingerprintPortableContent(metadataPath);
if (
before !== expectedFingerprint ||
after !== expectedFingerprint ||
!markerStillDeclared
) {
throw new Error(
`The ${METADATA_FILENAME} retirement authorization changed before archive could complete.`
);
}
}
async function fingerprintSpecInputs(update: SpecUpdate): Promise<string> {
return `${await fingerprintPath(update.source)}\n${await fingerprintPath(update.target)}`;
}
async function mutationTargetIdentity(mutation: SpecMutation): Promise<string> {
try {
const stat = await fs.stat(mutation.update.target, { bigint: true });
return `${stat.dev}:${stat.ino}`;
} catch (error) {
if ((error as NodeJS.ErrnoException).code === 'ENOENT') {
const parent = path.dirname(mutation.update.target);
const realParent = await fs.realpath(parent).catch(() => path.resolve(parent));
return `missing:${path.join(realParent, path.basename(mutation.update.target))}`;View on GitHub (pinned to 6926ccb18a)
When it happens
Trigger: Thrown at src/core/archive.ts:809 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/134d80db8a6d53de.
Report an issue: GitHub.