{"record":{"id":"4338dcd2a39c545b","repo":"Fission-AI/OpenSpec","slug":"cannot-archive-unsupported-filesystem-entry-src","errorCode":null,"errorMessage":"Cannot archive unsupported filesystem entry: ${srcPath}","messagePattern":"Cannot archive unsupported filesystem entry: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/core/archive.ts","lineNumber":371,"sourceCode":"\nasync function copyDirContents(src: string, dest: string): Promise<void> {\n  const sourceStat = await fs.lstat(src);\n  // Keep group/other access no broader than the source while ensuring this\n  // process can populate even a read-only source directory.\n  await fs.chmod(dest, (sourceStat.mode & 0o7777) | 0o700);\n  const entries = await fs.readdir(src, { withFileTypes: true });\n  for (const entry of entries) {\n    const srcPath = path.join(src, entry.name);\n    const destPath = path.join(dest, entry.name);\n    if (entry.isDirectory()) {\n      await fs.mkdir(destPath, { mode: 0o700 });\n      await copyDirContents(srcPath, destPath);\n    } else if (entry.isSymbolicLink()) {\n      await copySymbolicLink(srcPath, destPath);\n    } else if (entry.isFile()) {\n      await fs.copyFile(srcPath, destPath, constants.COPYFILE_EXCL);\n    } else {\n      throw new Error(`Cannot archive unsupported filesystem entry: ${srcPath}`);\n    }\n  }\n  await fs.chmod(dest, sourceStat.mode & 0o7777);\n}\n\nasync function fingerprintDirectoryContents(root: string): Promise<string> {\n  const hash = createHash('sha256');\n  const updateHashField = (label: string, value: string | Buffer): void => {\n    const labelBuffer = Buffer.from(label);\n    const valueBuffer = typeof value === 'string' ? Buffer.from(value) : value;\n    const lengths = Buffer.allocUnsafe(16);\n    lengths.writeBigUInt64BE(BigInt(labelBuffer.length), 0);\n    lengths.writeBigUInt64BE(BigInt(valueBuffer.length), 8);\n    hash.update(lengths);\n    hash.update(labelBuffer);\n    hash.update(valueBuffer);\n  };\n  const fingerprintFile = async (filePath: string): Promise<Buffer> => {","sourceCodeStart":353,"sourceCodeEnd":389,"githubUrl":"https://github.com/Fission-AI/OpenSpec/blob/6926ccb18afa4ff621112813e9968334576ee11a/src/core/archive.ts#L353-L389","documentation":"Error \"Cannot archive unsupported filesystem entry: ${srcPath}\" thrown in Fission-AI/OpenSpec.","triggerScenarios":"Thrown at src/core/archive.ts:371 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"}