{"record":{"id":"3fdcd312db06a7e4","repo":"musistudio/claude-code-router","slug":"a-valid-filesystem-path-is-required","errorCode":null,"errorMessage":"A valid filesystem path is required.","messagePattern":"A valid filesystem path is required\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/core/src/routing/route-script-worker.ts","lineNumber":287,"sourceCode":"}\n\nasync function readTextFile(file: string): Promise<string> {\n  const target = resolveScriptPath(file);\n  const stat = await fs.stat(target);\n  if (!stat.isFile()) throw new Error(`\"${file}\" is not a file.`);\n  if (stat.size > maxFileBytes) throw new Error(`File exceeds ${maxFileBytes} bytes.`);\n  return await fs.readFile(target, \"utf8\");\n}\n\nasync function writeTextFile(file: string, value: string): Promise<void> {\n  if (Buffer.byteLength(value, \"utf8\") > maxFileBytes) throw new Error(`File exceeds ${maxFileBytes} bytes.`);\n  const target = resolveScriptPath(file);\n  await fs.writeFile(target, value, \"utf8\");\n}\n\nfunction resolveScriptPath(file: string): string {\n  if (typeof file !== \"string\" || !file.trim() || file.includes(\"\\0\")) {\n    throw new Error(\"A valid filesystem path is required.\");\n  }\n  if (file === \"~\") return path.resolve(os.homedir());\n  if (file.startsWith(\"~/\") || file.startsWith(\"~\\\\\")) {\n    return path.resolve(os.homedir(), file.slice(2));\n  }\n  return path.resolve(file);\n}\n\nfunction assertHttpUrl(rawUrl: string): void {\n  let url: URL;\n  try {\n    url = new URL(rawUrl);\n  } catch {\n    throw new Error(`Invalid URL \"${rawUrl}\".`);\n  }\n  if ((url.protocol !== \"http:\" && url.protocol !== \"https:\") || url.username || url.password || !url.hostname) {\n    throw new Error(\"Only HTTP(S) URLs without embedded credentials are supported.\");\n  }","sourceCodeStart":269,"sourceCodeEnd":305,"githubUrl":"https://github.com/musistudio/claude-code-router/blob/99f24806c6a2c660b16e53e95211c517448a6c90/packages/core/src/routing/route-script-worker.ts#L269-L305","documentation":"Error \"A valid filesystem path is required.\" thrown in musistudio/claude-code-router.","triggerScenarios":"Thrown at packages/core/src/routing/route-script-worker.ts:287 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"99f24806c6a2c660b16e53e95211c517448a6c90","analyzedAt":"2026-08-27T04:11:01.184Z","schemaVersion":2},"datasetVersion":"2026-08-27T08:17:20.692Z"}