Cursor Browser (Browser Tab) doesn't work well with React Input

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

When Cursor uses Browser’s tool browser_type to fill a text in a Input Field, most of the time the submit button stays disabled and Cursor is unable to move.

If I manually type something in the field, it works. It must be something related to React state.

We don’t have a browser_run_local_js that would make our lives easier and possibly overcome this. Anyway, we should think on a way to solve that. Browser Use is essential.

Steps to Reproduce

Ask Cursor to test a CRUD app with React

Expected Behavior

The typing to change the field state

Operating System

MacOS

Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.0.64 (Universal)
VSCode Version: 1.99.3
Commit: 25412918da7e74b2686b25d62da1f01cfcd27680
Date: 2025-11-06T04:35:14.424Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Darwin arm64 24.5.0

Does this stop you from using Cursor

No - Cursor works, but with this issue

1 Like

Hey, thanks for the report. This is a known limitation with how the browser_type tool interacts with React’s synthetic event system - it doesn’t trigger onChange, which controlled inputs rely on to update state.

You’re absolutely right that a browser_run_local_js tool would help work around this. I’m escalating this to the engineering team since it’s blocking agent-based testing for React apps.

Temporary workaround:

  • Manually type into the fields to validate behavior
  • Or temporarily use uncontrolled components with refs for agent testing scenarios

Could you share a Request ID from one of the failed attempts? (Chat context menu → Copy Request ID) This will help engineering investigate.

Hi I am desperately waiting for this to be fixed as well. Same issue as described. I have done a failed attempt with this to help with debugging if you still need. Here is the requestId: 329aac0e-afc7-4040-9fe2-94aa60ce229b

2 Likes

Thanks for the Request ID - this will help the engineering team investigate!

The team is already working on it. In the meantime, please try the workarounds I mentioned above until we ship a fix.

1 Like

I keep trying after update but to no avail. Will we be notified here when this change and fix has been implemented?

It seems there have been multiple updates, including multiple updates on the intab browser, and yet this basic functionality is still broken? Can this not be made a higher priority? All these browser features are cool and all, but is useless for all my projects, and probably for majority of people who try to use it, as inputted fields never get registered, making the intab browser useless.

Please get back to me, as I noticed no one replied to my previous question either.. Thanks.

1 Like

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

browser_type tool does not trigger React state updates in controlled components

Summary
When using the Cursor Agent’s browser_type tool (specifically in the Inside-Browser), text is successfully inserted into the DOM of an or . However, React applications using controlled components (where the value is managed via useState and onChange) do not detect the input. Consequently, UI logic dependent on that state (such as “Send” buttons being enabled) remains unchanged until a manual keyboard entry is made.

Environment
OS: macOS (Darwin 25.0.0)
Browser: Cursor Integrated (Inside-Browser)
Framework: React 18 (using controlled components)

Observed Behavior
The Agent uses browser_type to fill a text field.
The text is visible in the UI inside the browser.
The React state associated with that field remains empty/undefined.
Any button with logic like disabled={!text.length} remains disabled.
If a user manually clicks into the field and types a single character, React suddenly “wakes up,” detects the entire string, and updates the state.

Root Cause Hypothesis
The browser_type tool appears to be setting the value property of the HTML element directly but might not be dispatching the necessary Synthetic Events (input, change, or keydown) that React’s event delegation system listens for. In React, simply changing element.value = “text” does not trigger the onChange handler.

Steps to Reproduce

Steps to Reproduce
Create a simple React component with a controlled input:
const [val, setVal] = useState(“”); return ( <> <textarea value={val} onChange={(e) => setVal(e.target.value)} /> <button disabled={val.length === 0}>Submit </> );
Open this page in the Cursor Inside-Browser.

Ask the Cursor Agent to “type ‘Hello World’ into the textarea and click Submit.”
Result: The Agent types the text, but the Submit button remains disabled. The Agent fails to click the button because the app doesn’t think there is any text.

Expected Behavior

The browser_type tool should simulate input in a way that triggers standard browser events (input and change) so that framework-level state managers (React, Vue, etc.) can react to the change.

Operating System

MacOS

Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.3.21 (Universal)
VSCode Version: 1.105.1
Commit: 68e0a0385b87408d050869ea543e3778ad53f780
Date: 2026-01-02T23:46:13.381Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Darwin arm64 25.0.0

For AI issues: which model did you use?

Any tested model like Auto and Gemini 3 Flash

Does this stop you from using Cursor

No - Cursor works, but with this issue

This limitation really gets in our way of taking advantage of the browser tool because Cursor is not able to QA its own work

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