ScreenshotNeo

BlogHow-to

Apify Screenshot Actor Returns a Blank Image: Causes and Fixes

A blank Apify screenshot can come from the page, crawler settings, Actor code, or run environment. Use logs and saved artifacts to find the failing stage.

By the ScreenshotNeo team4 October 20266 min read

A blank screenshot from an Apify Actor is a symptom, not a diagnosis. The cause may be the target page, crawler configuration, capture code, or run environment. Start by checking the run logs and the page artifacts at the moment of capture; then change one likely cause at a time. The exact fix depends on the Actor ID and version, target URL, input, and returned file.

1. Inspect the run logs and output artifacts

  1. Open the affected run in Apify Console and inspect the log around navigation and screenshot capture. Note the URL, timestamps, timeouts, browser errors, navigation errors, and output errors. Apify recommends logging each page URL and using try/catch around code that may fail before normal logging runs. See Apify’s Actor troubleshooting guidance.
  2. Check the downloaded image’s dimensions and file size. Open it in an image viewer and determine whether it is actually white/blank, transparent, truncated, or simply the wrong file. A retrieval or storage problem can look like a capture problem.
  3. Save or inspect the page HTML or another snapshot from the same capture point. Compare it with the image. Apify notes that snapshots can be screenshots or page HTML, and can reveal whether a page is empty, blocked, or changed.

Interpret the two artifacts together:

HTML or snapshot Image Likely area to investigate
Empty or a challenge/block page Blank or challenge What the site delivered, bot recognition, access, or navigation
Page content is present Blank Capture timing, browser/crawler support, screenshot code, or output handling
Page and image are both populated Looks blank in your application File retrieval, decoding, transparency, or display scaling
Snapshot differs from normal browser view Incomplete or unexpected Dynamic loading, location-dependent content, A/B variation, or site changes

2. Check loading and site access

Some pages populate after initial navigation. If capture happens too early, the result may be empty or incomplete. Compare the Actor’s snapshot with the same URL in a normal browser, and check whether the logs show navigation completion before the capture step. Apify lists dynamic data loading, site changes, and bot blocking among possible Actor problems. These are possible causes, not conclusions about a particular run.

  • If the page is blank in both its HTML and screenshot, check the URL, redirects, access response, and whether the site serves a challenge.
  • If content appears in HTML but not the image, focus on rendering, timing, browser support, and screenshot/output code.
  • If the page is populated only after an interaction or delayed request, use the wait behavior supported by that Actor and match it to the page. Do not treat an arbitrary fixed delay as a universal fix.

3. Verify screenshot support for the selected crawler

Screenshot support is Actor-specific. In one reported issue for Apify’s Website Content Crawler, a maintainer said Adaptive mode could not properly take website screenshots and recommended playwright:firefox. The response says the Actor enforced this in version 0.3.38 by warning and turning off its screenshot option with an unsupported crawler type. That report applies to that Actor and version context; it is not a rule for every screenshot Actor. Check the current Actor’s input schema, documentation, and version before changing crawler settings.

4. Review recent code, dependencies, and run resources

Find changes around the first bad run

Compare the failing run with the last successful run. Review Actor code, build/version, dependency updates, input changes, and platform/local differences. Apify identifies code mistakes, dependency updates, and differences between local and platform execution as potential causes. Confirm that the screenshot is actually created, saved, and returned under the expected key or URL.

Check memory and resource settings when the browser fails or stalls

Apify Actor runs have allocated memory, CPU, and disk resources; memory allocation determines the associated CPU and disk capacity. Review the run’s resource configuration if browser startup fails, the run stalls, or capture times out. More memory is a diagnostic experiment only when logs and symptoms point toward resource pressure; it does not establish or guarantee a fix for a blank image. See Apify’s Actor usage and resources documentation.

5. Reproduce with one URL and verify each change

  1. Choose one URL that reliably reproduces the issue. Keep the Actor version and input fixed and record both.
  2. Use logs and artifacts to choose one targeted change, such as a supported crawler mode for the relevant Actor or a wait condition justified by observed page behavior.
  3. Rerun that URL. Compare the log stage, HTML snapshot, image dimensions, and file size with the original run.
  4. Record whether the result changed before trying another setting. This distinguishes a verified correction from a guess.

For a custom Actor, make diagnostic output explicit: log the URL and capture stage, catch and log errors around navigation and screenshot creation, and retain a page snapshot when a capture fails. This is a troubleshooting pattern, not a drop-in API: the browser and snapshot methods depend on the Actor’s framework.

6. Troubleshooting common symptoms

Symptom Possible cause Next step
Run log shows navigation or timeout errors The page did not finish loading or the run could not reach it Inspect the URL and page snapshot; determine whether the failure is navigation, access, or timing before changing waits.
HTML contains a block or challenge page The site may be blocking or treating the Actor differently Confirm the response and review the Actor’s access/proxy configuration and site rules. Do not assume a blank screenshot means a browser rendering bug.
HTML has content but screenshot is blank Unsupported capture path, early capture, or screenshot/output code issue Verify the Actor’s supported crawler and inspect the capture step and saved artifact.
Only Website Content Crawler with Adaptive mode fails to save screenshots The cited maintainer report identifies Adaptive mode as unsupported for that Actor’s screenshots Check the current Actor version and settings; the report recommends playwright:firefox and describes enforcement in 0.3.38.
Browser startup fails or the run stalls Possible resource pressure, dependency issue, or environment difference Use the logs to locate the stage; review run resources and recent build/dependency changes.
Image has zero or unexpected dimensions, or cannot be opened Truncated output, wrong storage record, or retrieval/decoding problem Check the stored artifact, response, and output reference separately from the page capture.

7. Reliability and cost considerations

Browser rendering is sensitive to site behavior, timing, and the selected Actor implementation, so preserve enough run context to compare failures over time: URL, Actor ID and version, input, relevant logs, snapshot, and image metadata. For batch workloads, first reproduce against a representative URL and confirm the relevant capture configuration before scaling. Apify resource allocation affects the resources available to a run, but increasing it can add resource consumption and should be guided by evidence of a resource bottleneck. The available guidance does not establish a universal cost or performance figure for screenshot Actors.

8. What to collect before escalating

  • Actor ID and version/build
  • Target URL and exact run input
  • Run ID and log lines around navigation and capture
  • Screenshot file, dimensions, and file size
  • HTML or page snapshot from the same point, if available
  • Recent changes to inputs, code, dependencies, or resource allocation

Without these details, the evidence supports a diagnostic sequence, not a single certain root cause.

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server. A single request captures a URL; see the ScreenshotNeo API documentation.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

Cookie banners, newsletter popups, and chat widgets are removed before capture. Bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000. Sign up for 1,000 free screenshots a month with no card.

FAQ

Does a blank image prove that the website is empty?

No. The page may have returned content that the capture step did not render or save. Check page HTML and image together.

Should I always increase the Actor’s memory?

No. Check resource settings when the browser fails to start or the run stalls; a blank image alone does not show that memory is the cause.

Does the Website Content Crawler setting apply to every Apify screenshot Actor?

No. The Adaptive mode guidance is from a specific Website Content Crawler issue. Verify support in the Actor you are using.

What information is most useful when reporting the issue?

The Actor ID/version, target URL, input, run logs, and image dimensions/file size, plus a page snapshot if available.