Browser_click always returns "Element reference is stale" in cursor-ide-browser

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

  1. Open any web page with browser_navigate (tested with static HTML and React app)
  2. Take a browser_snapshot to get element refs
  3. Immediately call browser_click with any ref from the snapshot (e.g. a button)
  4. Error: “Element reference is stale (page has changed)”

Key observations:

  • browser_fill succeeds with the same ref that browser_click rejects
  • browser_scroll with scrollIntoView succeeds with the same ref
  • Happens on static HTML pages (not framework-specific)
  • Happens with or without browser_lock
  • Happens immediately after browser_snapshot with no delay
  • browser_click with 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

Hey, thanks for the super detailed bug report. The fact that browser_fill works with the same ref that browser_click rejects is a strong sign that the issue is in the click or hover implementation.

Can you share the Request ID from a session where this happens? (Chat context menu in the top right > Copy Request ID) This will help the team trace the exact failure path.

In the meantime, @playwright/mcp is a great workaround, like you found.

This topic was automatically closed 22 days after the last reply. New replies are no longer allowed.