Blog / 46 articles
Notes from building a screenshot API
Fixes for headless Chrome errors I ran into, guides for tricky pages and what it takes to run screenshots in production.
Docker Headless Chrome WebGL: Why It Breaks and 3 Ways to Fix It
WebGL content renders as black rectangles in Docker because containers have no GPU. Three fixes: SwiftShader explicit opt-in, Mesa llvmpipe for 4x speed, or NVI...
Puppeteer Screenshot Slow? 9 Fixes That Actually Work
Your Puppeteer screenshots take 5-7 seconds? Most of that time goes to Chrome startup, unnecessary network requests, and PNG encoding. These...
Puppeteer "Cannot Find Context with Specified Id" — Causes and Fixes
The error means Chrome invalidated an execution context ID while Puppeteer was still referencing it. This guide covers all five triggers, th...
Fix Puppeteer net::ERR_NAME_NOT_RESOLVED (6 Causes)
Puppeteer "Navigating Frame Was Detached" — Why It Happens and How to Fix It
Chrome isolates cross-origin iframes into separate processes. When those processes swap, Puppeteer loses its frame reference. Here are five...
Puppeteer New Headless vs Old Headless: What Changed and How to Migrate
Chrome split headless mode into two implementations, and Puppeteer changed which one headless: true uses. Here's what broke, why, and how to...
Fix "Could Not Find Expected Browser (Chrome) Locally" in Puppeteer
Puppeteer cannot find Chrome? Fix the "could not find expected browser locally" error in Docker, CI/CD, serverless, monorepos, and local dev...
Fix Puppeteer "Browser Has Disconnected" Error (All Causes)
Why Instagram Breaks Your Screenshots (And How to Fix It with Playwright)
Instagram shows two login popups, triggers React re-renders when you hide them wrong, and locks scrollHeight to the viewport. Three problems...
Fix Failed to Launch the Browser Process in Puppeteer
Every cause of Puppeteer browser launch failures with tested fixes for each environment.
Fix "Page Crashed!" in Puppeteer — Memory, Docker, /dev/shm
Puppeteer throwing "Page crashed!" errors? Trace it to /dev/shm limits, OOM kills, or heavy pages. Concrete fixes for Docker and bare-metal.
Fix Puppeteer net::ERR_ABORTED: causes and solutions
Puppeteer throws net::ERR_ABORTED on downloads, 204 responses, and aborted requests. These are the real causes and code fixes that work in p...
Screenshot API in a few clicks
Free plan includes 200 screenshots every month. No credit card required.
Sign up → copy your key → make your first call