Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
The browser_click and browser_hover tools in the built-in cursor-ide-browser MCP always fail with “Element reference is stale (page has changed)” error, even immediately after taking a snapshot.
Other tools (browser_fill, browser_type, browser_press_key, browser_scroll) work correctly with the exact same element refs.
This is NOT specific to any particular web framework - it reproduces on a static HTML page with a single button element.
Steps to Reproduce
- Open any web page with
browser_navigate(tested with static HTML and React app) - Take a
browser_snapshotto get element refs - Immediately call
browser_clickwith any ref from the snapshot (e.g. a button) - Error: “Element reference is stale (page has changed)”
Key observations:
browser_fillsucceeds with the same ref thatbrowser_clickrejectsbrowser_scrollwith scrollIntoView succeeds with the same ref- Happens on static HTML pages (not framework-specific)
- Happens with or without
browser_lock - Happens immediately after
browser_snapshotwith no delay browser_clickwith offset from a valid input ref returns “click target intercepted” (proving the ref IS valid for other operations)
Expected Behavior
browser_click should click the element identified by the ref from the latest snapshot, just as browser_fill successfully targets the same ref.
Operating System
MacOS
Version Information
Version: 2.4.37
macOS 15.5 (darwin 24.6.0)
Additional Information
Workaround: Using @playwright/mcp as an alternative MCP server resolves the issue - its browser_click works correctly, confirming the problem is specific to the cursor-ide-browser implementation.
This bug was identified by an AI agent (Claude) during automated integration testing of a web application. The agent was unable to complete browser-based E2E testing using the built-in browser tools.
Does this stop you from using Cursor
Sometimes - I can sometimes use Cursor