musistudio/claude-code-router · error · Error

"${file}" is not a file.

Error message

"${file}" is not a file.

What it means

Error ""${file}" is not a file." thrown in musistudio/claude-code-router.

Source

Thrown at packages/core/src/routing/route-script-worker.ts:274

    if (size > maxFetchResponseBytes) {
      await reader.cancel();
      throw new Error(`Fetch response exceeds ${maxFetchResponseBytes} bytes.`);
    }
    chunks.push(value);
  }
  const output = new Uint8Array(size);
  let offset = 0;
  for (const chunk of chunks) {
    output.set(chunk, offset);
    offset += chunk.byteLength;
  }
  return new TextDecoder().decode(output);
}

async function readTextFile(file: string): Promise<string> {
  const target = resolveScriptPath(file);
  const stat = await fs.stat(target);
  if (!stat.isFile()) throw new Error(`"${file}" is not a file.`);
  if (stat.size > maxFileBytes) throw new Error(`File exceeds ${maxFileBytes} bytes.`);
  return await fs.readFile(target, "utf8");
}

async function writeTextFile(file: string, value: string): Promise<void> {
  if (Buffer.byteLength(value, "utf8") > maxFileBytes) throw new Error(`File exceeds ${maxFileBytes} bytes.`);
  const target = resolveScriptPath(file);
  await fs.writeFile(target, value, "utf8");
}

function resolveScriptPath(file: string): string {
  if (typeof file !== "string" || !file.trim() || file.includes("\0")) {
    throw new Error("A valid filesystem path is required.");
  }
  if (file === "~") return path.resolve(os.homedir());
  if (file.startsWith("~/") || file.startsWith("~\\")) {
    return path.resolve(os.homedir(), file.slice(2));
  }

View on GitHub (pinned to 99f24806c6)

When it happens

Trigger: Thrown at packages/core/src/routing/route-script-worker.ts:274 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of musistudio/claude-code-router@99f24806c6 (2026-08-27). Data as JSON: /api/errors/dbf985e9fd3756ce. Report an issue: GitHub.