Fission-AI/OpenSpec · error · Error

Path changed while archive was reading ${filePath}.

Error message

Path changed while archive was reading ${filePath}.

What it means

Error "Path changed while archive was reading ${filePath}." thrown in Fission-AI/OpenSpec.

Source

Thrown at src/core/archive.ts:712

async function fingerprintPath(filePath: string): Promise<string> {
  try {
    const stat = await fs.lstat(filePath, { bigint: true });
    const digest = async (): Promise<string> =>
      createHash('sha256').update(await fs.readFile(filePath)).digest('hex');
    if (stat.isSymbolicLink()) {
      const link = await fs.readlink(filePath);
      try {
        const referentBefore = await fs.stat(filePath, { bigint: true });
        const hash = await digest();
        const referentAfter = await fs.stat(filePath, { bigint: true });
        const entryAfter = await fs.lstat(filePath, { bigint: true });
        if (
          statIdentity(stat) !== statIdentity(entryAfter) ||
          statIdentity(referentBefore) !== statIdentity(referentAfter) ||
          link !== (await fs.readlink(filePath))
        ) {
          throw new Error(`Path changed while archive was reading ${filePath}.`);
        }
        return `symlink:${statIdentity(stat)}:${link}:${statIdentity(referentAfter)}:${hash}`;
      } catch (error) {
        if ((error as NodeJS.ErrnoException).code === 'ENOENT') {
          return `symlink:${statIdentity(stat)}:${link}:missing`;
        }
        throw error;
      }
    }
    if (stat.isFile()) {
      const hash = await digest();
      const after = await fs.lstat(filePath, { bigint: true });
      if (statIdentity(stat) !== statIdentity(after)) {
        throw new Error(`Path changed while archive was reading ${filePath}.`);
      }
      return `file:${statIdentity(after)}:${hash}`;
    }
    return `other:${statIdentity(stat)}`;

View on GitHub (pinned to 6926ccb18a)

When it happens

Trigger: Thrown at src/core/archive.ts:712 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/62fb5795f66d5b07. Report an issue: GitHub.