{"record":{"id":"69a6220feb1e216a","repo":"actualbudget/actual","slug":"font-path-path-is-not-allowed-only-relative","errorCode":null,"errorMessage":"Font path \"${path}\" is not allowed. Only relative paths within the repo are supported (no \"/\" prefix or \"..\" segments).","messagePattern":"Font path \"(.+?)\" is not allowed\\. Only relative paths within the repo are supported \\(no \"/\" prefix or \"\\.\\.\" segments\\)\\.","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/desktop-client/src/style/customThemes.ts","lineNumber":574,"sourceCode":"    urlRegex.lastIndex = 0;\n    while ((urlMatch = urlRegex.exec(blockContent)) !== null) {\n      const fullMatch = urlMatch[0];\n      const quote = urlMatch[1] || '';\n      const path = urlMatch[2] ?? urlMatch[3];\n\n      // Skip data: URIs — already embedded\n      if (path.startsWith('data:')) continue;\n\n      if (/^https?:\\/\\//i.test(path)) {\n        throw new Error(\n          `Remote font URL \"${path}\" is not allowed. Only relative paths to fonts in the same GitHub repo are supported.`,\n        );\n      }\n\n      const cleanPath = path.replace(/^\\.\\//, '');\n\n      if (cleanPath.startsWith('/') || cleanPath.includes('..')) {\n        throw new Error(\n          `Font path \"${path}\" is not allowed. Only relative paths within the repo are supported (no \"/\" prefix or \"..\" segments).`,\n        );\n      }\n\n      const ext = cleanPath.substring(cleanPath.lastIndexOf('.')).toLowerCase();\n      const mime = FONT_EXTENSION_MIME[ext];\n      if (!mime) {\n        throw new Error(\n          `Unsupported font file extension \"${ext}\". Supported: ${Object.keys(FONT_EXTENSION_MIME).join(', ')}.`,\n        );\n      }\n\n      fontRefs.push({ fullMatch, quote, path, cleanPath, mime });\n    }\n\n    offset = closeBrace + 1;\n    searchCss = searchCss.substring(offset);\n  }","sourceCodeStart":556,"sourceCodeEnd":592,"githubUrl":"https://github.com/actualbudget/actual/blob/d4334cb6e6123f4d3bcea1ad6166608884c7e658/packages/desktop-client/src/style/customThemes.ts#L556-L592","documentation":"Error \"Font path \"${path}\" is not allowed. Only relative paths within the repo are supported (no \"/\" prefix or \"..\" segments).\" thrown in actualbudget/actual.","triggerScenarios":"Thrown at packages/desktop-client/src/style/customThemes.ts:574 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":"d4334cb6e6123f4d3bcea1ad6166608884c7e658","analyzedAt":"2026-08-29T01:02:11.213Z","schemaVersion":2},"datasetVersion":"2026-08-29T02:17:18.158Z"}