ReactiveX/rxjs · error · Error
Skill content resolves outside its canonical root: ${candida
Error message
Skill content resolves outside its canonical root: ${candidate} What it means
Error "Skill content resolves outside its canonical root: ${candidate}" thrown in ReactiveX/rxjs.
Source
Thrown at packages/migrate/src/skill-integrity.ts:79
const entries = await readdir(directory, { withFileTypes: true });
const result: string[] = [];
for (const entry of entries.sort((left, right) => left.name.localeCompare(right.name))) {
const absolutePath = resolve(directory, entry.name);
const localPath = relative(root, absolutePath).replaceAll(sep, '/');
if (localPath === skillProvenanceFileName) continue;
const stats = await lstat(absolutePath);
if (stats.isSymbolicLink()) throw new Error(`Canonical Skill content must not contain symbolic links: ${absolutePath}`);
if (stats.isDirectory()) result.push(...(await collectFiles(root, absolutePath)));
else if (stats.isFile()) result.push(localPath);
else throw new Error(`Canonical Skill content must contain only regular files and directories: ${absolutePath}`);
}
return result.sort();
}
function assertContained(root: string, candidate: string): void {
const localPath = relative(root, candidate);
if (localPath === '' || (localPath !== '..' && !localPath.startsWith(`..${sep}`))) return;
throw new Error(`Skill content resolves outside its canonical root: ${candidate}`);
}
View on GitHub (pinned to 54796b38a5)
When it happens
Trigger: Thrown at packages/migrate/src/skill-integrity.ts:79 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of ReactiveX/rxjs@54796b38a5 (2026-08-28).
Data as JSON: /api/errors/6412c4586c863a3c.
Report an issue: GitHub.