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_unavailableerror 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.


