playwright timed out when agent tried to scrape seat usage dashboard, scrape failed
Fixes Playwright timeouts when scraping seat usage dashboards by raising timeouts, waiting for the data element, retrying once, and falling back to the vendor export or API. Use when dashboards time out under automation. Not for bot-blocked pages.
TL;DR
Dashboards make many API calls on load, so the default timeout is often too short. Raise it for the dashboard page, wait for the seat-count selector specifically, retry once, and fall back to the vendor's export or API if it keeps timing out.
playwright timed out when agent tried to scrape seat usage dashboard, scrape failedUse this when
- Playwright times out on a seat usage dashboard.
- The dashboard loads for humans but slowly.
- The default 30-second timeout fires.
Not for this skill when
- The page blocks automation. Use the sanctioned path.
- The selector is wrong. Fix the selector.
- Login fails first. Fix login.
Steps
- Set a longer default timeout for this page. Verify: the timeout exceeds the dashboard's real load time.
- Wait for the seat-count selector specifically, not page load. Verify: the wait targets the data.
- Retry once on timeout. Verify: the retry is a fresh attempt.
- If it still times out, fall back to the vendor's export or API. Verify: the fallback returns data.
- Confirm the seat data. Verify: the numbers are sane.
Variant phrasings
playwright timeout
The short phrasing.
dashboard scrape failed
The action-first search.
seat usage dashboard
The page-first phrasing.
Compatibility: Playwright automation on SaaS dashboards.
Why it happens
Dashboards fan out to many backend calls on load. The default timeout assumes a simple page; dashboards are not simple pages.
Edge cases / pitfalls
- The selector changing between loads; prefer text-based or role-based selectors.
- The dashboard paginating the counts; the first page is not the total.
- Waiting on page load instead of the element; the load event may never fire cleanly.
- The retry needing a fresh page, not a re-wait on the timed-out one.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst4e3eU1Edwvw9ZNMJWl0mA