FormRill
  1. Blog

Why AI-built forms fail silently, and how to fix them

A contact form built by an AI tool can look finished and still send nothing. There is no error, no bounce and no warning: you just never hear from anyone. Here is why that happens, how to check your own form in two minutes, and what actually fixes it.

By FormRill team3 min read

Just want it fixed? The AI builders guide has a copy-paste prompt that wires your form up. This post explains what goes wrong underneath.

Why the failure is silent

A form has two halves. The front end collects the fields and shows a message. The back end receives the POST, stores it and turns it into an email. AI builders are very good at the first half, because it is visible: you can see the layout in the preview and ask for changes. The second half is invisible until a real visitor uses it, so it is easy to ship without it.

The visitor has no way to know their message went nowhere, and neither do you. That is what makes it worse than a broken page: a broken page gets reported.

The four ways it fails

1. The handler is a placeholder

The submit handler calls preventDefault(), logs the values or shows a toast, and stops. Nothing leaves the browser. This is the most common case, and it is not a bug in the tool: it built exactly the interface you asked for.

2. Success is shown without checking the response

The handler does send a request, but shows “Thanks!” as soon as it fires, whether the server said yes, no or nothing. A failing endpoint looks identical to a working one.

3. The endpoint doesn’t exist

Asked to “make the form send email”, an AI tool may write a call to /api/contact without the route behind it, or to a plausible-looking URL it made up. The request returns a 404 or is blocked by CORS, and failure mode 2 hides it.

4. The code never runs where you deployed it

Some fixes depend on the host or framework. A handler in a Next.js server component never fires. A host that detects forms in your built HTML can miss a form rendered by JavaScript. Code that worked in the preview can stop working after you deploy somewhere else.

How to check your form in two minutes

  1. Open your live site, not the preview, and open your browser’s developer tools on the Network tab.
  2. Fill in the form and press Send.
  3. Look for a new request when you click. No request at all means failure mode 1. A request with a 4xx or 5xx status, or a CORS error in the console, means mode 3.
  4. If the request failed but the page still said “sent”, you also have mode 2.
  5. If you got a 200 but no email, check where that endpoint is supposed to deliver, and your spam folder.

What fixes it

You need something real to receive the POST, and a front end that tells the truth about whether it worked. There are two ways to get the receiving half.

Build it. An API route or serverless function, an email provider with a verified sending domain, somewhere to store messages in case an email fails, and spam protection. It is a reasonable choice if your app already has a backend.

Use a hosted form backend. The form posts to a URL the service gives you, and it does the storing, emailing and spam filtering. This is what FormRill is. The front-end change is small:

<form method="POST"
  action="https://api.formrill.com/YOUR_FORM_ID/submit">
  <input type="checkbox" name="botcheck" hidden />
  <input type="text" name="name" required />
  <input type="email" name="email" required />
  <textarea name="message" required></textarea>
  <button type="submit">Send</button>
</form>

For JavaScript forms, send the same fields with fetch and the header Accept: application/json, and show success only when the response JSON has ok: true. That one check removes failure mode 2 for good.

Fix guides for each builder

Each guide has the prompt to paste, where to paste it, and the gotcha specific to that tool.

Make sure no lead gets lost

FormRill saves every submission before it sends anything, so even if an email bounces, the message is waiting in your dashboard. Want a second alert? Add Telegram for free, or send leads to Google Sheets (a Pro feature, free during the beta).

Letting your AI agent read submissions over MCP is planned Coming soon. It is not available yet.

Make your AI-built form actually send

Free up to 500 submissions a month and unlimited forms. No server, no credit card.

Start free

Related