actualbudget/actual · error · Error

Font path "${path}" is not allowed. Only relative paths with

Error message

Font path "${path}" is not allowed. Only relative paths within the repo are supported (no "/" prefix or ".." segments).

What it means

Error "Font path "${path}" is not allowed. Only relative paths within the repo are supported (no "/" prefix or ".." segments)." thrown in actualbudget/actual.

Source

Thrown at packages/desktop-client/src/style/customThemes.ts:574

    urlRegex.lastIndex = 0;
    while ((urlMatch = urlRegex.exec(blockContent)) !== null) {
      const fullMatch = urlMatch[0];
      const quote = urlMatch[1] || '';
      const path = urlMatch[2] ?? urlMatch[3];

      // Skip data: URIs — already embedded
      if (path.startsWith('data:')) continue;

      if (/^https?:\/\//i.test(path)) {
        throw new Error(
          `Remote font URL "${path}" is not allowed. Only relative paths to fonts in the same GitHub repo are supported.`,
        );
      }

      const cleanPath = path.replace(/^\.\//, '');

      if (cleanPath.startsWith('/') || cleanPath.includes('..')) {
        throw new Error(
          `Font path "${path}" is not allowed. Only relative paths within the repo are supported (no "/" prefix or ".." segments).`,
        );
      }

      const ext = cleanPath.substring(cleanPath.lastIndexOf('.')).toLowerCase();
      const mime = FONT_EXTENSION_MIME[ext];
      if (!mime) {
        throw new Error(
          `Unsupported font file extension "${ext}". Supported: ${Object.keys(FONT_EXTENSION_MIME).join(', ')}.`,
        );
      }

      fontRefs.push({ fullMatch, quote, path, cleanPath, mime });
    }

    offset = closeBrace + 1;
    searchCss = searchCss.substring(offset);
  }

View on GitHub (pinned to d4334cb6e6)

When it happens

Trigger: Thrown at packages/desktop-client/src/style/customThemes.ts:574 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of actualbudget/actual@d4334cb6e6 (2026-08-29). Data as JSON: /api/errors/69a6220feb1e216a. Report an issue: GitHub.