Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
Cloudflare HTTP/2 does not directly determine what appears in a website screenshot. A browser renders the page and captures its current visual state. HTTP/2 can affect the result indirectly if a connection or protocol problem prevents the page or its assets from loading. A blank, incomplete, or stalled capture is not, by itself, proof that HTTP/2 caused the problem.
To diagnose a suspected protocol issue, reproduce it over HTTP/1.1, then use browser diagnostics suited to the symptom: a HAR for loading or visual problems, console output for JavaScript errors, and a NetLog for HTTP/2 or QUIC errors. Cloudflare also offers Browser Run for hosted screenshots and browser automation; for a single screenshot without setting up a browser workflow, ScreenshotNeo is another option.
What HTTP/2 can—and cannot—change in a screenshot
A screenshot is an image of a browser’s rendered page at a particular moment. The browser first has to fetch the document and its resources, run the page’s scripts, and reach the state at which the capture is taken. A network or protocol failure can interrupt those steps, leaving a screenshot blank, partial, or visually broken.
That is an indirect effect. The Cloudflare documentation on protocol troubleshooting does not say that HTTP/2 changes the browser’s rendering algorithm or screenshot pixels on its own. The protocol matters when it affects which content reaches the browser, or whether requests complete at all.
#1 Best Overall
- Used Book in Good Condition
Cloudflare’s troubleshooting guidance cautions that protocol errors do not necessarily indicate a protocol-level issue. A page error may have another cause, so changing protocol settings before identifying the failure can obscure rather than solve the problem. Treat the screenshot as evidence of the page state, not a diagnosis of the network path.
Identify what failed before changing protocols
Start by describing the symptom precisely. Record the URL, browser or automation environment, viewport, interactions, and wait conditions, then note whether the capture is blank, incomplete, stalled, or accompanied by a specific browser error. Keep those conditions the same for later comparisons.
Choose diagnostic evidence based on the symptom
| Symptom | Useful evidence | What it helps investigate |
|---|---|---|
| Visual issues, broken elements, or slow page loads | HAR file | The sequence of browser HTTP requests and loading behavior. HAR files can contain request and response data, so inspect them for secrets before sharing. |
| Page or interaction fails in JavaScript | Browser console output | Script errors that may stop expected page behavior or content updates. |
ERR_HTTP2_PROTOCOL_ERROR or a related protocol error |
NetLog dump | Protocol-specific behavior, including HTTP/2 and QUIC. A screenshot alone cannot provide this level of network detail. |
Cloudflare’s support guide recommends HAR files for visual issues, broken elements, slow page loads, or capturing the browser’s HTTP request sequence. Console logs and NetLogs answer different questions; one artifact is not a substitute for all the others.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteRank #2
Test whether the failure is actually protocol-specific
- Reproduce the same capture. Use the same page URL, browser steps, viewport, and wait behavior. Record whether the problem is a blank page, missing content, a stall, or a named error.
- Collect symptom-appropriate evidence. Save a HAR for loading or visual failures, and console output for script failures. Review HAR contents for credentials, tokens, personal information, or other sensitive request data before sending it to anyone.
- Compare with HTTP/1.1. If Chrome reports
ERR_HTTP2_PROTOCOL_ERRORor a related protocol error, repeat the same reproduction over HTTP/1.1. Cloudflare recommends this comparison as a way to isolate the problem, not as proof that HTTP/2 is at fault. - Interpret the comparison. If the error also occurs over HTTP/1.1, investigate the underlying page or connection failure first. If it disappears, collect a NetLog and examine HTTP/2-specific behavior rather than concluding from the comparison alone.
- Keep HTTP/3 separate. HTTP/3 uses QUIC; it is not HTTP/2. Cloudflare’s protocol guide describes Chrome-only HTTP/3 failures that may involve browser-side QUIC handling. Compare behavior with HTTP/3 disabled when that is the suspected path, and use the logs to distinguish it from HTTP/2.
- Repeat the capture after resolving the issue. Use the same viewport, page state, and wait conditions so the new image is a meaningful comparison. This controlled rerun helps distinguish a network fix from unrelated changes in page content or timing.
Do not infer a root cause from a browser error label or from one successful retry. The practical question is whether the same failure consistently follows a protocol-specific path and what the corresponding network evidence shows.
Choose a Cloudflare browser workflow for the job
Cloudflare Browser Run is a browser execution service that runs headless Chrome for screenshots, PDFs, scraping, testing, and scripted browser automation. Cloudflare’s getting-started guidance distinguishes simple, stateless captures from workflows that need sustained browser control.
Quick Actions for a straightforward capture
For a one-off screenshot, PDF, or scrape, Cloudflare recommends Quick Actions. They can be invoked through a REST API or a Workers binding. This path is suited to a request that can be expressed as a simple action rather than a sequence of custom browser interactions.
Rank #3
Playwright, Puppeteer, or CDP for custom interaction
Use a browser session with Playwright, Puppeteer, or the Chrome DevTools Protocol (CDP) when the task needs more control: for example, multiple steps, custom interactions, or a persistent session. Cloudflare’s guide also describes connecting to CDP from an external environment as an option for existing infrastructure or CI/CD. Quick Actions documentation points toward these session-based interfaces for advanced workflows.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →These are different control surfaces, not different screenshot protocols. Pick based on the task’s complexity; if a capture fails, use the diagnostic workflow above instead of assuming that switching interfaces will resolve an HTTP/2 problem.
Understand Browser Run’s documented data handling
Cloudflare’s Browser Run FAQ describes ephemeral processing for Quick Actions other than crawl, and for Puppeteer, Playwright, and CDP: submitted content and generated output are not retained beyond the rendering operation. The same FAQ lists two exceptions: crawl results are stored for 14 days after completion, and opt-in session recordings are retained for 30 days. These are Cloudflare’s service statements, not an independent guarantee about every part of a user’s data handling or surrounding systems.
The FAQ also states that Quick Actions output is cached for five seconds by default. The cache TTL can be configured up to one day or disabled with cacheTTL: 0. Puppeteer, Playwright, and CDP use no caching, according to that FAQ. Consider these settings when a repeated capture appears unchanged or when your workflow has a specific freshness requirement.
Common capture problems and practical fixes
| What you see | What to check | Next step |
|---|---|---|
| Blank or incomplete screenshot | Whether the document or assets finished loading; whether the page requires JavaScript or interaction to reveal content. | Capture a HAR and console output. Keep the viewport and wait conditions consistent while reproducing the issue. |
| Broken images or other missing elements | Failed or delayed resource requests in the HAR. | Inspect the request sequence and verify whether the affected resources load in the same browser session. |
| Capture stalls or takes unusually long | Slow or unfinished requests, and whether the capture’s wait condition depends on page activity ending. | Use the HAR to identify where loading stops. Do not treat a timeout as proof of an HTTP/2 fault. |
ERR_HTTP2_PROTOCOL_ERROR |
Whether the same reproduction fails over HTTP/1.1. | If HTTP/1.1 also fails, investigate the underlying page or connection issue. If it does not, collect a NetLog for protocol analysis. |
| Chrome fails on HTTP/3 while another path works | Whether the suspected connection uses HTTP/3/QUIC rather than HTTP/2. | Compare with HTTP/3 disabled and inspect protocol logs before attributing the failure to HTTP/2. |
| Repeated Quick Actions output appears stale | The configured cacheTTL and the default Quick Actions cache behavior. |
Adjust the TTL or set cacheTTL: 0 when the capture must not use the cache. |
Frequently asked questions
Is Cloudflare Browser Run the same as configuring HTTP/2 for a website?
No. Browser Run is a service for executing browser tasks such as screenshots and scripted automation. HTTP/2 is a network protocol involved in requests between clients and servers. Using Browser Run does not, on its own, establish what protocol caused a particular page failure.
Can a successful HTTP/1.1 retry prove HTTP/2 is broken?
No. It is a useful isolation result, but the next step is to inspect protocol-specific evidence such as a NetLog and establish that the same reproduction was used. A single comparison does not identify every cause of a failure.
Best Value
Or skip the browser setup
If you need a direct screenshot call rather than a Cloudflare browser session, ScreenshotNeo accepts a URL and returns an image or PDF. Its API has matching option names used by other screenshot APIs, which can make switching easier. Here is a one-request cURL example; replace the access key with your own and change the target URL as needed. See the ScreenshotNeo API documentation for request options.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp
Python and Node.js alternatives are below.
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://example.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://example.com' }); const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
ScreenshotNeo accepts cookie and 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 and CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and the response identifies the page verdict and billing status in headers. An MCP server gives AI agents tools to take screenshots, get page information, and capture PDFs. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 shots. Features are available on every plan.
Sign up for ScreenshotNeo’s free plan to try 1,000 screenshots a month with no card.
Recommended Free Tools
Frequently Asked Questions
Is Cloudflare Browser Run the same as configuring HTTP/2 for a website?
No. Browser Run is a service for executing browser tasks such as screenshots and scripted automation. HTTP/2 is a network protocol involved in requests between clients and servers.
Can a successful HTTP/1.1 retry prove HTTP/2 is broken?
No. It is a useful isolation result, but inspect protocol-specific evidence such as a NetLog and confirm the same reproduction was used before identifying a cause.
Quick Recap
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.

