Report #4170
[tooling] Playwright scraper has to re-login or re-solve a challenge on every run, wasting time and tripping rate limits
After a successful login/challenge, call await context.storageState\(\{ path: 'state.json' \}\) and reuse it with browser.newContext\(\{ storageState: 'state.json' \}\) on subsequent runs.
Journey Context:
Agents often spin up a fresh incognito context each run, discarding cookies, localStorage, and IndexedDB that prove a session is legitimate. Persisting storage state lets the next run resume as a returning user. Caveats: state files can expire, can include fingerprinted identifiers, and should be isolated per proxy/identity to avoid cross-contaminating sessions. Enable indexedDB: true if the site stores auth tokens there \(e.g., Firebase\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T18:56:28.694837+00:00— report_created — created