Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
Skip to content
World desk5 min

How to Fix Puppeteer Screenshots Missing Devanagari Fonts on Linux

When Puppeteer screenshots show blank or boxed Devanagari text on Linux, check the font files and Chromium version inside the runtime that takes the screenshot.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

If Devanagari text is blank, displayed as boxes, or incorrectly shaped in a Puppeteer screenshot on Linux, first make sure the font is installed and discoverable in the exact runtime that launches Chromium. Then check which browser build Puppeteer is using: a Chromium change dated March 4, 2026 added Linux default mappings for Devanagari fonts, but that change does not guarantee that every packaged browser includes them.

1. Identify the Chromium build and Linux runtime

Puppeteer delegates rendering and screenshots to Chromium, so the browser’s Linux environment determines which font files it can use. A font installed on your laptop or Docker build host will not help if screenshots run in a separate container, CI job, or serverless runtime.

As an Amazon Associate I earn from qualifying purchases.

Record the Puppeteer version, the actual Chrome or Chromium executable and version, the Linux distribution, and where the process runs. Puppeteer downloads a compatible Chrome for Testing by default, but configuration can change the selected browser. See the Puppeteer installation and browser download guidance and system requirements.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Do not assume that a recent Chromium font change applies to the executable you are running. The Chromium source change dated March 4, 2026 says Linux previously had no configured default fonts for Devanagari and adds mappings for standard/sans-serif, serif, and fixed-width text. Downstream distributions and older browser builds may differ; check the version in the deployment itself. Read the Chromium change.

2. Check font availability where Chromium runs

Confirm that the runtime can discover a Devanagari font. For typical sans-serif styling, check for Noto Sans Devanagari; if the page uses serif text, check for Noto Serif Devanagari. Chromium’s documented mapping uses Noto Sans Mono for fixed-width text.

Install the appropriate font package for the target Linux distribution and release, or bundle the font files into the runtime image. Package names vary, so verify them against that distribution’s repositories rather than copying an installation command for another release. Puppeteer’s Linux and Docker troubleshooting guidance discusses browser dependencies; font availability is a separate concern from the shared libraries Chromium needs to launch.

3. Refresh font discovery and restart Chromium

After adding font files, refresh font discovery with the fontconfig tooling supplied by the target distribution, then start a fresh Chromium process. The exact command depends on the Linux distribution and image; there is no single command established for every runtime. Ensure the font installation and refresh happen in the final runtime image or environment, not only on the build host.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

4. Test with an explicit font and a minimal page

Use a small diagnostic page containing known Devanagari text, request the intended family explicitly, and capture it with Puppeteer. This helps separate font coverage or resolution problems from styles and scripts elsewhere on the page.

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({ headless: true });
  try {
    const page = await browser.newPage();
    await page.setContent(`
      <!doctype html>
      <meta charset="utf-8">
      <style>
        body { font: 32px "Noto Sans Devanagari", sans-serif; }
      </style>
      <p>नमस्ते दुनिया</p>
    `);
    console.log(await page.$eval('p', el => getComputedStyle(el).fontFamily));
    await page.screenshot({ path: 'devanagari.png' });
  } finally {
    await browser.close();
  }
})();

A computed CSS family name indicates what the style requests; by itself, it does not prove that Chromium found a font with the necessary glyphs. Inspect the screenshot as well. If the text still appears wrong, verify that the intended executable and font files are present and discoverable in the runtime, and that the selected font covers the characters being rendered.

5. Troubleshoot by symptom

Symptom Likely area to check Next step
Blank text or tofu (boxes) The runtime cannot resolve a font with the required glyphs, or the selected font lacks coverage. Check font visibility in the actual runtime, then test with an explicit Devanagari family.
The font exists on the host but not in the screenshot The screenshot process may run in a container, CI image, or serverless runtime with a different filesystem. Install or bundle the font in the environment that launches Chromium.
Sans-serif works but serif or monospace does not The CSS requests a different generic family, which can use a different default mapping. Check the matching family: Noto Sans Devanagari for sans-serif, Noto Serif Devanagari for serif, and Noto Sans Mono for fixed-width under the documented Chromium mapping.
Chromium will not launch This can be a missing browser dependency rather than a missing Devanagari font. Use Puppeteer’s Linux troubleshooting guide to diagnose launch dependencies separately from font rendering.
The fix works locally but not in deployment The deployed browser build, image, or font configuration may differ from the local setup. Check the executable version and font availability inside the deployment runtime, then launch a fresh browser process.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

6. Make font support part of the runtime image

For Docker and CI, treat fonts as runtime dependencies alongside Chromium: add them to the image or environment that performs the capture, and validate a sample screenshot after changing the image. Keep the browser version and Linux image identifiable in deployment logs so a browser update or image change can be investigated without relying on what is installed on a developer workstation. Puppeteer’s Linux and Docker guide covers browser setup and related dependencies.

Or skip the browser setup

If the goal is simply a website screenshot, ScreenshotNeo provides a screenshot API and MCP server. For example, one GET request can return a screenshot; consult the ScreenshotNeo API documentation for parameters and response details.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

ScreenshotNeo accepts cookie or consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each of those steps can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers indicate the page verdict and billing status. Its MCP server provides screenshot and PDF tools for AI agents. The free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots.

Sign up for 1,000 free screenshots a month, with no card required.

Frequently Asked Questions

Does installing Noto Sans Devanagari on my development laptop fix a container screenshot?

Only if Chromium uses that same environment. A separate container or runtime needs access to the font itself.

Does a computed CSS font-family prove Chromium rendered Devanagari with that font?

No. It shows the requested family, not that Chromium resolved a font with the needed glyph coverage; inspect the captured output too.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.