Fission-AI/OpenSpec · error · Error
Cannot fork schema with linked or unsupported entry: ${entry
Error message
Cannot fork schema with linked or unsupported entry: ${entryPath} What it means
Error "Cannot fork schema with linked or unsupported entry: ${entryPath}" thrown in Fission-AI/OpenSpec.
Source
Thrown at src/commands/schema.ts:320
src: string,
allowedRoot = src,
ancestors = new Set<string>()
): void {
const canonicalSrc = resolveSchemaCopyPath(allowedRoot, src);
if (ancestors.has(canonicalSrc)) {
throw new Error(`Cannot fork schema with a linked directory cycle: ${src}`);
}
ancestors.add(canonicalSrc);
try {
for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
const entryPath = path.join(src, entry.name);
const canonicalEntry = resolveSchemaCopyPath(allowedRoot, entryPath);
const stats = fs.statSync(canonicalEntry);
if (stats.isDirectory()) {
assertSchemaTreeCanBeCopied(canonicalEntry, allowedRoot, ancestors);
} else if (!stats.isFile()) {
throw new Error(`Cannot fork schema with linked or unsupported entry: ${entryPath}`);
}
}
} finally {
ancestors.delete(canonicalSrc);
}
}
/**
* Produces a stable content fingerprint of a directory: a SHA-256 over every
* file's relative path AND its bytes (plus directory paths), walked in sorted
* order. Two directories with byte-identical trees produce the same digest, and
* ANY change to a file's contents, size, or the set of paths changes it. Used to
* detect a concurrent modification of a fork destination between the moment the
* overwrite is authorized and the moment it is actually moved/deleted, so those
* changes are never silently destroyed.
*/
function fingerprintDir(dir: string): string {
const hash = createHash('sha256');View on GitHub (pinned to 6926ccb18a)
When it happens
Trigger: Thrown at src/commands/schema.ts:320 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/6d03162745250df0.
Report an issue: GitHub.