Why contact forms break without anyone noticing
A contact form is the last step between a visitor and a lead, and it fails quietly. The page loads, so uptime checks stay green. The visitor fills everything in, presses Send and gets an error, or nothing at all. Most people won't try twice, and they certainly won't email you to say your form is broken.
Common causes:
- A plugin or theme update on WordPress changes the form or breaks its script.
- Spam protection gets stricter, or its key stops working for your domain, and real people are blocked too.
- A JavaScript error stops the Send button from doing anything.
- The endpoint behind the form starts returning a
500 after a deploy. - A redesign renames or moves a field, and a required field ends up hidden on mobile.
You usually find out weeks later, when someone asks why there were no inquiries this month.
What it catches, and what it doesn't
The check covers everything a visitor goes through in the browser: the page opens, the fields accept input, validation lets a correct message through, the form submits and the thank-you message appears. A problem at any of those steps is an alert.
What it can't see is your inbox. If the form says "Thanks" but the email never arrives, for example because your mail provider rejects it, the browser has no way to know. Two things help here. Keep an eye on the test messages: if they stop arriving while AxoWatch shows green runs, the problem is mail delivery. And if your form is handled by your own app, send its errors to AxoWatch through the Sentry SDK, so a failed send shows up as an error tied to that run.
How often to check a form
Every run sends one real message, so pick an interval you're happy to filter. How often flows can run depends on the plan: every 6 hours on Free, every hour on Starter, every 30 minutes on Pro and Agency. For most sites a few checks a day is enough to catch a broken form before it costs a day of leads.