WhoopsBot

Guides · Updated 2026-10-23

How to know if your signup form is broken

How to tell that a signup form is broken when the page still loads, what to look at in the network panel, and what a scheduled check can and cannot see.

A form that renders is not a form that works

The usual report from a customer is short: they could not create an account. The usual check from the founder is to open the homepage, see that it loads, and assume signup is fine because the button is still there. Those are different questions. A signup form is broken when a new person cannot finish it, even if the HTML arrived, the button is visible, and an uptime monitor is green.

Do the check the way a stranger would. Use a private window, on a machine that is not already logged in, and use the published URL rather than the preview. Type a new email you control. If the button does nothing, the page shows an error you do not understand, or you never get into the product, the form is broken. A successful signup you did last month does not answer today's question.

What to watch while you submit it

Open the browser's network panel before you click, and filter it to the request the click makes. That request is the form. A document response of 200 only means the page shell loaded. The signup call is usually a POST to your auth host or to your own API. Read its status. A 400 often means the payload or the redirect URL was rejected. A 401 or 403 means the client is not allowed to do this. A 500 means the server threw. A request that never leaves the browser means the click handler failed before it could send anything, which you will also see in the console.

Then read the page after the request settles. The sentence you show on success has to be a sentence that is absent when signup fails. 'Welcome' printed in the header of every page is a bad signal. A heading that appears only after the account exists is a good one. If the button stays enabled and the page does not change, treat that as a failure even when no red status appeared. Some apps swallow the error and leave the form as it was.

The email is a second step

Plenty of signups are not finished when the form submits. The account exists only after the person opens a confirmation mail, or the product looks empty until that mail arrives. If the form says it sent a message and the inbox stays empty, the form is only half the bug. Check the auth provider's redirect allow list, the from-address domain, and the spam folder before you rewrite the button. Old confirmation links still point at whatever Site URL was configured when they were sent.

Keep this separate from 'the button does not work'. A flow that only waits for email will stay quiet when the click itself is dead. A flow that only clicks will stay green when the message never leaves. If both matter, check both, and do not use a customer's inbox as the test address.

What the free page check will not do

The free check on the homepage opens one URL in a browser. It reports whether that page loaded, console errors, broken images and same-site links, a few obvious tokens, public /.env or /.git responses, and missing security headers. It does not click Create account, type an email, or submit the form. A clean result means that first page did not show those problems. It does not mean signup works.

Use it anyway, once, on the published signup URL. A page that throws before the form mounts, or a bundle that calls the wrong host, shows up there. Then test the click yourself, or save it as a flow. The comparison between a green uptime row and a broken signup is covered in a separate guide. This page is the manual version of that question.

Checking it again without repeating the afternoon

A saved flow is the same steps, on a timer. Visit the published signup URL. Click the control labeled the way the button is labeled. Fill the email and password with a test account you created for this. Expect a sentence that only appears when signup succeeded. If that sentence is missing, the run fails and keeps a screenshot. The free plan runs one flow once a day and leaves the result on the run page. It does not email you. Starter is $19 USD a month: five flows, about every six hours, an email when one starts failing. Pro is $49 USD a month: twenty flows, every hour, an email on every failure.

Change the expected sentence when you change the copy. A check that fails because you renamed a heading is noise, and noise is how a real break gets ignored. Do not point the flow at a live customer's account. The steps, including the test password you type into a fill step, are stored so the run can repeat.

Questions

Does a HTTP 200 mean the signup form works?

No. It means the server sent a response for that URL. The signup request, the click handler, and the success state are separate.

Can the free check submit my signup form?

No. The free check loads one page and does not click or type. A saved flow is what clicks and looks for the success sentence.

Related

Check the published page.

No card needed. Free plan forever. Cancel anytime.