remotion-dev/remotion · error · Error
No Google Font named
Error message
No Google Font named "${requestedFamily}" found What it means
This is thrown by the google-fonts package's codegen script (scripts/generate.ts) when a CLI family filter matches none of the known Google Fonts. The script takes an optional argv[2] font family name and filters `googleFonts` by exact family match; an empty result means the requested family does not exist in the bundled metadata list.
Solutions
- Check the exact family name against Google Fonts (fonts.google.com) and use the canonical spelling, including casing and spaces
- Search packages/google-fonts data/metadata for the family to confirm it is supported; if not, the font must be added to the metadata first
- Run without the argument to generate all fonts, confirming the script works before narrowing to one family
- If the font was recently added upstream, update the package's font list before filtering by it
Example fix
// before bun scripts/generate.ts "Opensans" // after bun scripts/generate.ts "Open Sans"
Defensive patterns
Strategy: validation
Validate before calling
import {googleFonts} from "./data"; // the script's source list
const family = process.argv[2];
if (family && !googleFonts.some((f) => f.family === family)) {
console.error(`Unknown family: ${family}`);
process.exit(1);
} Try / catch
try {
await runGenerate(family);
} catch (e) {
if (e.message.startsWith('No Google Font named')) {
console.error(`${e.message} — check fonts.google.com for the exact spelling`);
process.exit(1);
}
throw e;
} Prevention
- Copy family names verbatim from fonts.google.com (exact casing and spacing)
- Confirm the family exists in the package metadata list before filtering
- Run the script once with no argument to list/verify the pipeline works
When it happens
Trigger: Running the generate script (e.g. `bun run generate` inside packages/google-fonts) with a second argument like `pnpm generate "Roboto Slab"` where the exact string does not equal any `font.family` — due to typos, wrong casing, missing suffixes (e.g. "Roboto" vs "Roboto Condensed"), or a font that is not in the package's supported list.
Common situations: Regenerating a single font's metadata after an update and misspelling its family name, using a localized/display name instead of the canonical Google Fonts family name, or requesting a font added to Google Fonts recently but absent from this package's data.
Understand the failure class
Background: "Not found" and "does not exist" errors: why "Task not found", "No such folder", and "Can't find" fire when a lookup comes back empty — this error's family across 14 libraries.
Related errors
- A template must be specified when using --yes. Example…
- Both an output flag (--output) and an output location as a…
- Cannot create an app named
- Cannot find composition with ID
- Cannot render an image sequence with a codec that renders…
AI-assisted analysis of remotion-dev/remotion@46a3a6bf13 (2026-09-18).
Data as JSON: /api/errors/fee4fa5539b7c89d.
Report an issue: GitHub.
Appendix: source
Thrown at packages/google-fonts/scripts/generate.ts:173
}
};
const date = Date.now();
// Prepare css cache dir
if (!fs.existsSync(CSS_CACHE_DIR)) {
await fs.promises.mkdir(CSS_CACHE_DIR, {recursive: true});
}
let incompatibleFonts: string[] = [];
const promises: Promise<unknown>[] = [];
const requestedFamily = process.argv[2] ?? null;
const fontsToGenerate = requestedFamily
? googleFonts.filter((font) => font.family === requestedFamily)
: googleFonts;
if (fontsToGenerate.length === 0) {
throw new Error(`No Google Font named "${requestedFamily}" found`);
}
// Batch convert
for (const font of fontsToGenerate) {
promises.push(
p(() => {
return generate(font);
}),
);
}
await Promise.all(promises);
if (!requestedFamily) {
await Bun.write(
__dirname + '/incompatible-fonts.ts',
`export const incompatibleFonts = ${JSON.stringify(
incompatibleFonts,View on GitHub (pinned to 46a3a6bf13)