Ultimate

X_SCRAPE_WATCHDOG_STOPPED

Means

the wedge watchdog stopped measuring and the run was ended

Typical cause

the clock the scrape definition (or apps/<app>/runtime.ts) supplied has a sleep() that rejects, so the guard's poll loop died and nothing was left watching for a wedged browser. Ended rather than run unwatched: a guard that stopped measuring is the first incident with nothing armed. A separate code from X_SCRAPE_WEDGED on purpose — that one means the page stopped answering, and sending a reader there to investigate a page that is fine is the whole cost of reusing it. Terminal, where its sibling is retryable: attempt 2 reaches the same clock identically, so retrying buys five browser launches that die at the first poll — and on an authenticated target, five arrivals at a login

Fix

drop the custom clock: from the scrape() definition and any clock: line in apps/<app>/runtime.ts — @ultimat3/core's systemClock is the only SleepClock whose sleep() cannot reject — then re-run

Listed under Scraping

This page as markdown