Browser automation tool fails to fill and submit HTML forms, showing invalid states even when fields contain values.

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

The new browser automation tool (cursor-ide-browser) fails to properly fill and submit login forms. When attempting to log into a web application, form fields show validation errors even after being filled with valid credentials, and form submission doesn’t work correctly.

Steps to Reproduce

Use the browser automation tool to navigate to any page with a form
Use browser_type to fill form input fields with valid values
Use browser_click to submit the form (click submit button or press Enter)
Observe that form fields show invalid states despite having values
Form submission fails or doesn’t proceed

Form fields show states: [“invalid”] even when values are present
Validation error messages appear despite fields being filled
Form submission doesn’t work - page doesn’t progress
Button clicks don’t trigger form submission
The form remains in an invalid state preventing submission

Expected Behavior

Form fields should accept typed values without showing invalid states
Form validation should recognize entered values
Form submission should work when valid data is entered
The form should process and submit successfully

Operating System

MacOS

Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.1.19
VSCode Version: 1.105.1
Commit: 39a966b4048ef6b8024b27d4812a50d88de29cc0
Date: 2025-11-21T22:59:02.376Z (20 hrs ago)
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.1.0

For AI issues: which model did you use?

Auto

For AI issues: add Request ID with privacy disabled

7c19fa1b-ec2e-463d-967c-c73adada3449

Additional Information

This affects any form interaction (login, registration, contact forms, etc.)
The tool provides detailed snapshots showing element states, which helps identify the issue
The problem appears to be related to how form field values are being set or recognized by the browser automation
Previous browser automation tool worked correctly with the same forms

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, thanks for the report. This looks like a known issue with JavaScript framework apps (React, Vue, etc.).

Quick question: is this a React app or another framework? The problem you’re describing (fields being treated as invalid even when they have values) is typical when automation tools set values directly without triggering framework events like onChange.

Could you also share:

  • Console errors:
    • CMD+Shift+P → “Developer: Toggle Developer Tools” → Console tab
  • Are these controlled form components (using state)?
  • Are you using the built-in browser tab or external Chrome?

I’ll pass this to the team with a focus on framework event handling, since this is blocking an important use case.

As a temporary workaround, you can try using the Playwright MCP tool, which handles framework events correctly.

Yes, this is a React app.

Framework:

  • React 19.1.0
  • react-hook-form 7.55.0 with zod 3.24.2 validation
  • Vite 6.2.7

This happens only while using the browser tab, but works fine when I use the “Google Chrome“ option for browser automation.

Console Errors from Cursor IDE Logs:

SyntaxError: Unexpected token '#', "
### Page s"... is not valid JSON
    at JSON.parse (<anonymous>)
    at Object.fn (workbench.desktop.main.js:7060:6284)
    at u4a (workbench.desktop.main.js:276:30076)
    at Sst (workbench.desktop.main.js:276:29830)
    ...
    at Up.updateComposerDataSetStore (workbench.desktop.main.js:565:14723)
    at Up.updateComposerBubbleSetStore (workbench.desktop.main.js:565:25104)
    at Eso.setBubbleData (workbench.desktop.main.js:7078:154)
    at Eso.handleToolResult (workbench.desktop.main.js:7078:14047)
[transport] Stream error reported from extension host ConnectError: [canceled] This operation was aborted
    at kZc.$endAiConnectTransportReportError (workbench.desktop.main.js:6330:408452)
    {arch: 'arm64', platform: 'darwin', channel: 'stable', client_version: '2.1.26', streamId: 'd192812b-40f7-429f-aa24-fe9c95274736', …}
[composer] Failed to get complete AI response
[composer] Chat incomplete or aborted {arch: 'arm64', platform: 'darwin', channel: 'stable', client_version: '2.1.26', requestId: '57728f6d-34a3-43c1-8bc8-b83fb2de2b85', …}