diegosouzapw/OmniRoute · error · Error

Local corpus file path escapes the configured root

Error message

Local corpus file path escapes the configured root

What it means

Error "Local corpus file path escapes the configured root" thrown in diegosouzapw/OmniRoute.

Source

Thrown at src/lib/localCorpus/index.ts:546

    return { query: query.trim(), results: results.slice(0, limit), status: this.getStatus() };
  }

  async read(
    inputPath: string,
    options: { startLine?: number; endLine?: number } = {}
  ): Promise<LocalCorpusReadResult> {
    if (!inputPath || path.isAbsolute(inputPath) || hasDeniedSegment(inputPath)) {
      throw new Error("Local corpus file path must be a permitted relative path");
    }
    if (!isAllowedExtension(inputPath, this.limits.allowedExtensions)) {
      throw new Error("Local corpus file type is not permitted");
    }

    const root = await this.getRoot();
    const resolved = path.resolve(root, inputPath);
    if (!isContained(root, resolved)) {
      throw new Error("Local corpus file path escapes the configured root");
    }

    let linkStat;
    try {
      linkStat = await fs.lstat(resolved);
    } catch {
      throw new Error("Local corpus file is not accessible");
    }
    if (linkStat.isSymbolicLink() || !linkStat.isFile()) {
      throw new Error("Local corpus path must point to a regular file");
    }
    if (linkStat.size > this.limits.maxFileBytes) {
      throw new Error("Local corpus file exceeds the configured read limit");
    }

    let canonicalFile: string;
    try {
      canonicalFile = await fs.realpath(resolved);

View on GitHub (pinned to a179ffed5b)

When it happens

Trigger: Thrown at src/lib/localCorpus/index.ts:546 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of diegosouzapw/OmniRoute@a179ffed5b (2026-08-25). Data as JSON: /api/errors/1c0ce0bf00ee41ef. Report an issue: GitHub.