Fission-AI/OpenSpec · error · ChangeMetadataError

Failed to read metadata: ${ioError.message}

Error message

Failed to read metadata: ${ioError.message}

What it means

Error "Failed to read metadata: ${ioError.message}" thrown in Fission-AI/OpenSpec.

Source

Thrown at src/utils/change-metadata.ts:109

 * @returns The validated metadata, or null if no metadata file exists
 * @throws ChangeMetadataError if the file exists but is invalid
 */
export function readChangeMetadata(
  changeDir: string,
  projectRoot?: string
): ChangeMetadata | null {
  const metaPath = path.join(changeDir, METADATA_FILENAME);

  if (!fs.existsSync(metaPath)) {
    return null;
  }

  let content: string;
  try {
    content = fs.readFileSync(metaPath, 'utf-8');
  } catch (err) {
    const ioError = err instanceof Error ? err : new Error(String(err));
    throw new ChangeMetadataError(
      `Failed to read metadata: ${ioError.message}`,
      metaPath,
      ioError
    );
  }

  let parsed: unknown;
  try {
    parsed = yaml.parse(content);
  } catch (err) {
    const parseError = err instanceof Error ? err : new Error(String(err));
    throw new ChangeMetadataError(
      `Invalid YAML in metadata file: ${parseError.message}`,
      metaPath,
      parseError
    );
  }

View on GitHub (pinned to 6926ccb18a)

When it happens

Trigger: Thrown at src/utils/change-metadata.ts:109 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/1c715b933ad193e3. Report an issue: GitHub.