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.