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

  1. Check the exact family name against Google Fonts (fonts.google.com) and use the canonical spelling, including casing and spaces
  2. 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
  3. Run without the argument to generate all fonts, confirming the script works before narrowing to one family
  4. 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

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


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)