## TL;DR
License admin pages are the heaviest pages in SaaS apps. Wait for the specific content element with a generous timeout, retry once, and have a non-browser fallback ready: the API or a scheduled export.

```text
agent couldn't access the license admin page, browser automation timed out, run failed
```

## Use this when
- An agent times out loading a license admin page.
- The page loads for humans but slowly.
- The license data is needed from the UI.

## Not for this skill when
- The page denies access. That is permissions; it will never load.
- An API exposes the data. Prefer the API.
- Login fails first. Fix login.

## Steps
1. Identify the content element that proves the page loaded. Verify: the element is specific to loaded data.
2. Wait for it with a generous timeout. Verify: the wait targets the element.
3. On timeout, retry once with a fresh page. Verify: the retry is clean.
4. Fall back to the API or scheduled export. Verify: the fallback returns the data.
5. Confirm the data or flag the page as unavailable. Verify: the gap is reported, not silent.

## Variant phrasings
### admin page timeout
The short phrasing.
### license page unreachable
The state-first search.
### automation timed out
The generic phrasing.

Compatibility: Any browser automation on SaaS admin pages.

## Why it happens
Admin pages aggregate data from many backend calls. Automation timeouts on them are the norm, not the exception, so the fallback must be planned, not improvised.

## Edge cases / pitfalls
- The page requiring a role the agent's account lacks; check permissions before raising timeouts.
- The content element rendering only after interaction; the wait may need a scroll or click.
- Flagging the gap matters more than the retry count; a silent skip corrupts the audit.
- The fallback export having different semantics than the page; reconcile the definitions.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_e7XsQoCyR9wzZmUbwP9aqA
