Rendering reliability and consistency improvements

More reliable rendering servers and full-page scrolling, more consistent screenshots with reduce_motion, and more accurate fail_if_content_contains matching.

Changelog2 min read

Written by

Dmytro Krasun

Published on

We have shipped several improvements that make rendering more reliable and screenshots more consistent.

Reliability

  • Recovery from stalled browser starts. In rare cases, starting a new browser instance could hang. A rendering server then kept rejecting requests with the temporary_unavailable error until it was restarted. Browser starts are now limited in time, and a stalled start is stopped and retried automatically, so the server keeps serving requests.
  • More reliable full-page scrolling. Some pages, for example with certain review widgets, load their content only when scrolled with the mouse wheel. On these pages, an embedded map or a scrollable section could take over the scrolling and stop a full-page screenshot before the end of the page. The scrolling now detects when the page stops moving and continues until it reaches the end.
  • Quota is released for rejected requests. If a request is rejected while it is being validated, the quota reserved for it is now released immediately.

More consistent screenshots with reduce_motion

The reduce_motion option, introduced recently, makes screenshots of the same page more consistent. With reduce_motion=true, the API now also:

  • Stops more sliders and carousels. Autoplaying sliders are paused and returned to the same slide, so two screenshots of an unchanged page don’t show different slides. It includes sliders that show their slides in random order.
  • Keeps rotating headlines still. Animated headlines that cycle through words show the first complete phrase instead of a random moment of the animation.
  • Renders lazily rendered sections. Some websites skip rendering sections below the fold until a visitor scrolls to them. Full-page screenshots now include these sections.

This is still best-effort: custom JavaScript animations, canvas rendering, and animated images may change between screenshots.

More accurate fail_if_content_contains matching

The fail_if_content_contains option fails a request when the specified text is visible on the page. It now decides more accurately whether the text is visible:

  • Text in overlays is found. Text that is visible on the screen inside fixed overlays, such as login or consent walls, is now matched even when its container has no size of its own.
  • Hidden text is ignored more reliably. Text that is not actually visible, for example because of visual effects applied to it or to its parent elements, no longer causes the request to fail.

If you still see temporary_unavailable errors, incomplete full-page screenshots, or pages where motion causes differences between screenshots, please contact support@screenshotone.com.

Read more product updates

New features, bug fixes, and optimizations...

View all product updates
Control scrolling into view when taking screenshots by selector

Control scrolling into view when taking screenshots by selector

You can now control scrolling into view when taking screenshots by selector. It allows render more accurate screenshots.

Read more

1 min read

DNS certificate authorization

DNS certificate authorization

We updated DNS certificate authorization records for ScreenshotOne to strengthen protection against unauthorized certificate issuance.

Read more

1 min read

Clearer MCP connection approvals

Clearer MCP connection approvals

MCP connection screens now highlight unverified applications and show their callback destination before you approve access.

Read more

1 min read

Automate website screenshots

Exhaustive documentation, ready SDKs, no-code tools, and other automation to help you render website screenshots and outsource all the boring work related to that to us.