{"record":{"id":"38935e7412fd5dd2","repo":"Fission-AI/OpenSpec","slug":"invalid-metadata-parseresult-error-message","errorCode":null,"errorMessage":"Invalid metadata: ${parseResult.error.message}","messagePattern":"Invalid metadata: (.+?)","errorType":"validation","errorClass":"ChangeMetadataError","httpStatus":null,"severity":"error","filePath":"src/utils/change-metadata.ts","lineNumber":66,"sourceCode":" * @param changeDir - The path to the change directory\n * @param metadata - The metadata to write\n * @param projectRoot - Optional project root for project-local schema resolution\n * @throws ChangeMetadataError if validation fails or write fails\n */\nexport function writeChangeMetadata(\n  changeDir: string,\n  metadata: ChangeMetadata,\n  projectRoot?: string\n): void {\n  const metaPath = path.join(changeDir, METADATA_FILENAME);\n\n  // Validate schema exists\n  validateSchemaName(metadata.schema, projectRoot);\n\n  // Validate with Zod\n  const parseResult = ChangeMetadataSchema.safeParse(metadata);\n  if (!parseResult.success) {\n    throw new ChangeMetadataError(\n      `Invalid metadata: ${parseResult.error.message}`,\n      metaPath\n    );\n  }\n\n  // Write YAML file\n  const content = yaml.stringify(parseResult.data);\n  try {\n    fs.writeFileSync(metaPath, content, 'utf-8');\n  } catch (err) {\n    const ioError = err instanceof Error ? err : new Error(String(err));\n    throw new ChangeMetadataError(\n      `Failed to write metadata: ${ioError.message}`,\n      metaPath,\n      ioError\n    );\n  }\n}","sourceCodeStart":48,"sourceCodeEnd":84,"githubUrl":"https://github.com/Fission-AI/OpenSpec/blob/6926ccb18afa4ff621112813e9968334576ee11a/src/utils/change-metadata.ts#L48-L84","documentation":"Error \"Invalid metadata: ${parseResult.error.message}\" thrown in Fission-AI/OpenSpec.","triggerScenarios":"Thrown at src/utils/change-metadata.ts:66 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6926ccb18afa4ff621112813e9968334576ee11a","analyzedAt":"2026-08-25T12:29:45.729Z","schemaVersion":2},"datasetVersion":"2026-08-25T16:17:27.014Z"}