{"record":{"id":"18423cb218e72e7c","repo":"musistudio/claude-code-router","slug":"invalid-label","errorCode":null,"errorMessage":"Invalid ${label}.","messagePattern":"Invalid (.+?)\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/electron/src/main/ipc.ts","lineNumber":648,"sourceCode":"    height: Math.ceil(height),\n    width: Math.ceil(width)\n  };\n}\n\nasync function waitForExportWindowPaint(window: BrowserWindow): Promise<void> {\n  await window.webContents.executeJavaScript(`\n    new Promise((resolve) => {\n      const fontsReady = document.fonts && document.fonts.ready ? document.fonts.ready.catch(() => undefined) : Promise.resolve();\n      fontsReady.then(() => {\n        requestAnimationFrame(() => requestAnimationFrame(() => resolve(true)));\n      });\n    });\n  `);\n}\n\nfunction finiteNumber(value: unknown, label: string): number {\n  if (typeof value !== \"number\" || !Number.isFinite(value)) {\n    throw new Error(`Invalid ${label}.`);\n  }\n  return value;\n}\n\nfunction safePngFileName(value: string): string {\n  const raw = typeof value === \"string\" ? value : \"\";\n  const safe = path.basename(raw).replace(/[<>:\"/\\\\|?*\\x00-\\x1f]/g, \"-\").trim() || \"ccr-share-card.png\";\n  return safe.toLowerCase().endsWith(\".png\") ? safe : `${safe}.png`;\n}\n\nfunction consumeImageExportTarget(exportId: string): string {\n  const target = imageExportTargets.get(exportId);\n  imageExportTargets.delete(exportId);\n  if (!target) {\n    throw new Error(\"Image export target is unavailable.\");\n  }\n  return target;\n}","sourceCodeStart":630,"sourceCodeEnd":666,"githubUrl":"https://github.com/musistudio/claude-code-router/blob/99f24806c6a2c660b16e53e95211c517448a6c90/packages/electron/src/main/ipc.ts#L630-L666","documentation":"Error \"Invalid ${label}.\" thrown in musistudio/claude-code-router.","triggerScenarios":"Thrown at packages/electron/src/main/ipc.ts:648 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"}