X_SCRAPE_CAPTURE_INVALID
Means
the capture names a framing no picture can be taken with
Typical cause
terminal — the rectangle is the caller's own literal, so attempt 2 passes the identical one, and it is refused before any driver runs, so there is no half-done capture to resume. Three shapes: fullPage beside a clip (CDP silently ignores one, so the caller gets a picture they did not ask for), a rectangle with no area or a non-finite number, and a clip on page.pdf(), which has no crop and would answer a whole-page PDF to a caller who asked for one component. A rectangle merely BELOW THE FOLD is accepted — this package sets and reads no viewport, and refusing it would reject the component-screenshot case it exists for
Fix
drop fullPage or drop clip; measure the element with page.query('<selector>') and pass a rectangle with a positive width and height; a PDF has no crop — use page.screenshot({ clip })