Fission-AI/OpenSpec · error · ArchiveBlockedError

archive_change_not_found

archive_change_not_found

Error message

Change '${changeName}' not found. Available changes: ${available.join(', ')}

What it means

Error "Change '${changeName}' not found. Available changes: ${available.join(', ')}" thrown in Fission-AI/OpenSpec.

Source

Thrown at src/core/archive.ts:1172

    const changeDir = path.join(changesDir, changeName);

    // Verify change exists
    try {
      const stat = await fs.lstat(changeDir);
      if (stat.isSymbolicLink()) {
        throw new ArchiveBlockedError(
          'archive_change_symlink',
          `Change '${changeName}' is a symbolic link. Replace it with a real directory before archiving.`
        );
      }
      if (!stat.isDirectory()) {
        throw new Error(`Change '${changeName}' not found.`);
      }
    } catch (error) {
      if (error instanceof ArchiveBlockedError) throw error;
      const available = await listActiveChangeNames(changesDir);
      throw new ArchiveBlockedError(
        'archive_change_not_found',
        available.length > 0
          ? `Change '${changeName}' not found. Available changes: ${available.join(', ')}`
          : `Change '${changeName}' not found. No active changes exist in this root.`
      );
    }

    const skipValidation = options.validate === false || options.noValidate === true;

    // Validate specs and change before archiving
    if (!skipValidation) {
      const validator = new Validator();
      let hasValidationErrors = false;

      // Validate proposal.md (informative only; human mode prints warnings)
      if (!json) {
        const changeFile = path.join(changeDir, 'proposal.md');
        try {

View on GitHub (pinned to 6926ccb18a)

When it happens

Trigger: Thrown at src/core/archive.ts:1172 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/4999766b93ab865c. Report an issue: GitHub.