A CAPTCHA should not make your agent click Submit twice
How we're coordinating browser actions and CAPTCHA solving so clients know when to wait, retry, or stop.
By default, Notte starts solving supported CAPTCHAs as soon as they appear. But solving takes time, and the agent may still be trying to act on the page while verification is underway.
Suppose the agent clicks Submit before the CAPTCHA clears. The website rejects the request, even though the solver is already working on it. Verification might succeed a moment later, but that doesn't repair the failed submission. The action needs to wait for the solver.
We're moving CAPTCHA solving from an extension into Notte's browser runtime so the session can coordinate the wait. When a challenge blocks an action that hasn't run yet, Notte waits for verification and checks that the page hasn't changed before allowing it to continue. The agent can then submit once and check the confirmation.
Keep solving and browser actions together
An extension can detect and solve challenges, but it still needs to coordinate with the system running the agent's actions. Bringing that coordination into the browser session lets us decide when an action should wait and when it can continue.
External providers still solve the challenges. Their credentials stay in the backend, and the browser session manages the work, including cancelling it when the page closes or changes.
Know whether the action already ran
A CAPTCHA can block a click before it happens or appear because of the click. Those situations need different responses.
If the click never happened, the agent can try it after verification finishes, provided the page is still the same. If the click already happened, the agent keeps that result and waits for the challenge. Repeating Submit could send the form twice.
The agent can check progress without starting another solve or extending the wait indefinitely. Here's the case where the CAPTCHA blocks the action before it runs:
A missing response is different: a timeout alone doesn't tell us whether the click happened, so we don't automatically repeat it. Even a confirmed click doesn't prove the website accepted the submission. The agent still needs to check the result on the page.
Check that it's still the same page
A reload can replace a form without changing its URL. The old challenge and pending action belonged to the previous version of that page.
Suppose the agent is waiting to submit an invoice request when the page reloads. Even if the address looks identical, the agent must inspect the new form before continuing. Notte tracks these page changes and cancels the old solve, preventing a pending action from resuming against a replacement page.
Take turns and stop waiting when needed
The solver and agent may both need to click. Notte coordinates their input so actions sent through the API wait while the solver interacts with the page. Progress checks remain available. Tools connected directly to the browser and hosted agents operate outside this coordination.
Solving continues independently of the request that started it, but has a deadline. If it fails or is cancelled, the agent gets that outcome and cannot treat the challenge as cleared.
Our tests use controlled solver responses to check waiting, resuming actions, and recovering from page changes or failures. They validate this coordination, not live CAPTCHA acceptance rates. The workflow is only complete when the agent checks that the website accepted the intended action.
Frequently asked questions
How do I stop a CAPTCHA from breaking my AI browser agent?
Make the action wait for the solver instead of racing it. When a challenge blocks an action that has not run yet, Notte waits for verification, checks that the page has not changed, and then lets the action continue. The agent submits once and checks the confirmation.
Should the agent click Submit again after a CAPTCHA appears?
Only if the click never ran and the page is still the same. If the click already happened, the agent keeps that result and waits for the challenge, because repeating Submit could send the form twice. A timeout alone does not say whether the click happened, so Notte does not repeat it automatically.
Does this guarantee the website accepts the CAPTCHA?
No. Our tests use controlled solver responses and validate the coordination, not live CAPTCHA acceptance rates. The agent still has to check that the website accepted the intended action.
