What breaks
Login form error messages: which ones mislead
Your sign-in page tells a returning user the password is wrong when the real problem is an unverified email. Mimiq sends simulated visitors through each failed attempt and shows the exact text they read.
Why does my login form show the wrong error message?
A login form shows the wrong message when one generic line covers failures that need different actions: a wrong password, an unknown email, an unverified address, a locked account and a server fault. The generic line is a fair choice for a wrong password and an unknown email, because it hides which emails have accounts. The other cases need their own sentence, with the next step. A simulated visitor signs in with each failure in turn and shows the message exactly as it appeared.
What this looks like in a report
“I'm sure I used the same password. The message said the email or password was wrong, so I reset it. The reset mail never came, and I didn't know if the account even existed.”
The fix. Show the same line for a wrong password and an unknown email, and give an unverified account its own line with a button that resends the confirmation email. Clear the line as soon as the visitor edits either field.
An illustration. Run a test to see your own.See a real sample report
One message is covering failures that need different fixes
The sign-in page has one red line for every failure, and the line says the email or password was wrong. A visitor who never verified the address is told the password is wrong, so they reset a password that was fine. A locked account gets the same line, so they keep trying, and each try can count toward the lock. A server fault gets the same line too, and the visitor blames their own typing. The owner tests with a working account, so the line never looks wrong to them.
- Sign in with a wrong password, an unknown email, an unverified account and a locked one, and compare the text.
- Check whether the text differs for an unknown email and a wrong password. Identical text is the safe choice.
- Look for a line that names the next step, such as resending the verification email.
- Check that a server error shows a plain sentence, not a code, a stack trace or the word undefined.
- Confirm the message clears when the visitor edits either field.
Five failures, and only two should share a line
A login form receives the failure from the server, and the server often knows which case it is. The usual safe rule is to say the same thing for a wrong password and an unknown email, because a different sentence tells a stranger which emails have accounts on your site. An unverified address or a locked account is different. The visitor can act on it, by confirming the address or waiting for the lock to lift, and the message should say which. A server fault needs a plain sentence and a retry, not a code.
Login rules copied from the signup form
Login forms are often built from the signup form, so they carry its checks. A visitor who made a password before a new rule, such as a required symbol, gets a message about that rule when they sign in. The password was accepted at signup and is correct, but the login form checks it against the new rule first and stops. Read the text: if it names a rule that only applies to new passwords, the check belongs on signup, not sign-in. The login should only check that a password was typed and let the server decide whether it matches.
Accounts that fail in each way, for the test
To test the messages, you need an account for each failure: one with a correct password, one that never verified its email, and one that is locked after the attempts your site allows. The unknown email needs no account at all. Give each visitor the account that matches their failure, or have them type a wrong password against a real account. With paid credits, visitors can sign in with a test account you give them, but they cannot use Google or single sign on, so a login that offers only those stops the run at that step.
What you get with Mimiq
- 01
Run it by hand, or on every pull request
Paste a link and a task in the app and watch the visitors work. Or run them on every preview deploy: the GitHub Action comments on the pull request, any other CI can call the MCP endpoint, and your coding agent can run it too.
- 02
Bugs and usability problems in one report
The browser records errors and failed or slow requests on the step they happened. The visitors say where the wording or the steps confused them, and where they left.
- 03
Visitors that behave like your audience
Each visitor is a different profile with a reason to be there, matched to who the page is for, described by you, or built from your own customers.
- 04
A prompt to fix each problem
Every problem comes with a fix to paste into Cursor, Claude Code, Lovable or any coding agent, and one prompt hands over the top problems at once. Then send the same visitors through again.
- 05
Follow every visitor
See each visitor's whole path, step by step with screenshots, and what it was thinking at every step. Ask any visitor a question.
The browser records relevant JavaScript errors and failed or slow app requests encountered during the run, attached to the step where they occurred. The visitors are simulated: they find problems, they do not predict how many real people will convert.
A new lockout or verification step adds a failure nobody named
Each new sign-in rule, such as a lockout after several tries or a verification step for new devices, adds a failure the message may not name. Rerun the same four sign-in attempts after each change, and check that each one still gets its own line. Behind a site password, use the password you give the visitors and check each preview deploy before it goes live.
Starter
Try it on one launch
About 4 tests of 5 visitors
- Visitors on your landing page, signup and checkout
- Where they left and why, with a fix to copy for each problem
- Run it in the app or on every pull request
- Ask any visitor a question, included
- Test accounts and protected previews
Builder
Test every build
About 20 tests of 5 visitors
- Everything in Starter
- Credits refill each month, and what is left rolls over once
- Cancel anytime
Pro
Test every release, as a team
About 60 tests of 5 visitors
- Everything in Starter
- Credits refill each month, and what is left rolls over once
- Cancel anytime
Scale
Test at scale, every day
About 240 tests of 5 visitors
- Everything in Starter
- Credits refill each month, and what is left rolls over once
- Priority support
- Cancel anytime
Questions
Should a login error say wrong password or wrong email?
Usually neither. For a wrong password and an unknown email, one line that covers both is the common choice, because it keeps a stranger from learning which emails have accounts. Tell the visitor the next step, such as resetting the password. Save specific messages for cases the visitor can act on, like an unconfirmed address.
Why does my login show a password rule I never set for signing in?
The login form often reuses the signup rules, so a password made before a rule changed fails a check it was never tested against. Remove the rule checks from the login path. Check only that a password was entered, and let the server decide whether it matches the stored one.
Can a simulated visitor sign in?
A visitor can sign in with a test account you give them on a paid run. They cannot sign in with Google or single sign on, so a login that offers only those stops at that step. The report shows the message the form displayed, with a screenshot and any failed app request on that step.
Will the test tell me how many people give up at login?
No. It shows the step and the message a visitor would see, not a rate. It does not predict how many real people would leave at the message, and it cannot read your login logs. Use your own sign-in counts for the rate, and the test for the wording.
Why does the error stay on screen after I fix my email?
The message is probably stored at form level, and nothing clears it when a field changes. Clear it on input, and on the next submit replace it with the new result rather than adding a second line. Then retry the same failed attempt to confirm the text changed.
Keep reading
Send visitors and see what breaks first.
Your first test is free: sign in with Google and it starts right away. Last checked 2026-11-02.