Contact forms

Contact Form 7: “One or more fields have an error” — what it means and how to fix it

A Contact Form 7 validation error, not an email problem. Find the field that failed, then fix hidden required fields, format rules, file limits and scripts.

October 20, 2026 · 7 min read

Want it fixed today? Free for 5,000 emails a month. No card.

A visitor fills in your Contact Form 7 form, presses Send and gets this message below the form: “One or more fields have an error. Please check and try again.” Nothing is sent. If they cannot see what is wrong, they leave.

The good news is that this message is not about email at all. It is a validation error. Contact Form 7 checks every field before it tries to send anything, and at least one field did not pass. This guide shows how to find that field and fix the usual causes.

This post covers one Contact Form 7 message. For every reason a Contact Form 7 form fails to deliver, including failures that show no error, see the main guide: Contact Form 7 not sending email: every cause and fix.

Validation error or sending error?

When a form is submitted, Contact Form 7 runs its steps in order: validate the fields, check the acceptance checkbox, run spam checks, then send the email. It stops at the first step that fails and shows the message for that step.

  • “One or more fields have an error. Please check and try again.” The fields failed validation. No email was attempted.
  • “There was an error trying to send your message. Please try again later.” The fields were fine, but WordPress could not send the email, or a spam check blocked the submission. That is a different problem with different fixes, covered in Contact Form 7 “There was an error trying to send your message”.

So if you see the first message, leave your mail settings and SMTP plugin alone for now. They are not the cause.

Step 1: find the field that failed

Contact Form 7 puts a short red tip under each field that failed. The tip tells you which rule was broken. These are the default tips in current versions:

  • Please fill out this field. A required field is empty.
  • Please enter an email address. An email field does not contain a valid address.
  • Please enter a URL. A URL field does not contain a valid web address.
  • Please enter a telephone number. A tel field contains something that is not a phone number.
  • Please enter a number. A number field contains something other than a number.
  • The uploaded file is too large. or You are not allowed to upload files of this type. A file field rejected the upload.
  • The answer to the quiz is incorrect. A quiz field was answered wrongly.
  • This field has a too long input. or This field has a too short input. A length limit was not met.

Messages are saved with each form, so an older form, or one that has been translated, may show different wording. You can see and edit all of them on the form’s Messages tab.

If the general error appears but you cannot see any tip, the failing field is hidden. Open the page in your browser, right-click the form and choose Inspect. In the developer tools, search the page for wpcf7-not-valid-tip. The element it finds sits next to the field that failed. Failing fields also get aria-invalid="true".

Step 2: check the common causes

A required field that the visitor cannot see

A field marked required in the form template has an asterisk in its tag, such as [text* your-name] or [email* your-email]. If that field is hidden with CSS, or placed inside a section your theme does not show, the visitor cannot fill it in. Contact Form 7 still checks it on the server, so every submission fails.

The same happens with conditional-logic add-ons when a rule is set up wrongly and a required field stays hidden. Fix it by removing the asterisk from fields that are not always visible, or by correcting the rule so the hidden field is skipped.

Format rules on email, URL, phone and number fields

Each field type has its own format check. These catch real visitors more often than you would expect:

  • URL fields need the scheme. example.com fails; https://example.com passes. If you only want a website name, use a text field instead.
  • Tel fields accept digits with spaces, dashes, dots, slashes and brackets, and an optional leading +. Letters, such as “ext 12” or “call after 5”, fail. Very short or very long numbers also fail.
  • Number fields accept digits, a minus sign and a decimal point. A thousands separator such as 1,000 fails. If the tag has min: or max: options, values outside the range fail too.
  • Email fields must contain a complete address. A trailing space pasted from somewhere else or a missing domain part is a common mistake.

If many genuine visitors fail a format check, the field type is too strict for your audience. Switching a tel field to a text field is a reasonable fix.

File upload size or type

A file field only accepts the types and size you allow. When the tag has no filetypes: or limit: option, Contact Form 7 applies its defaults: images, audio and video only, up to 1 MB. A visitor who uploads a 3 MB PDF to [file your-file] will fail on both counts. Set the options explicitly:

[file your-file filetypes:pdf|jpg|png limit:5mb]

The limit cannot use a decimal point, so write limit:1536kb rather than limit:1.5mb. If the file also needs to arrive as an attachment, see Contact Form 7 file attachments not arriving.

The acceptance checkbox

An [acceptance] checkbox is required unless you add the optional option. By default it is checked separately from field validation, so an unticked box shows “You must accept the terms and conditions before sending your message.” instead of the general error. If you have added acceptance_as_validation: on on the Additional Settings tab, an unticked box becomes a normal validation error, and the general message appears with a tip next to the checkbox. If the checkbox is hidden by your theme’s styling, visitors cannot tick it at all.

Quiz answers, reCAPTCHA and Turnstile

A wrong answer to a [quiz] field is a validation error, so it shows the general message with the quiz tip. Check that the expected answer after the | character is what a visitor would actually type.

reCAPTCHA, Turnstile and Akismet work differently. When their check fails, Contact Form 7 marks the submission as spam and shows the spam message, not the validation message. If that is your problem, see Contact Form 7 spam submissions.

JavaScript errors, caching and minification

Contact Form 7 uses JavaScript to submit the form in place and to show the tips next to each field. If its script does not run, the page reloads after every submission and the messages may not appear where you expect. The Contact Form 7 documentation lists the usual reasons: a theme that does not call wp_head() and wp_footer(), conflicts with other plugins’ scripts, and invalid HTML around the form.

  1. Open the contact page, press F12 and look at the Console tab for red errors.
  2. Turn off combining, deferring and minifying of JavaScript in your cache or optimization plugin, then clear every cache, including any CDN cache.
  3. Test again. If the form works, add Contact Form 7’s script to the plugin’s exclusion list and turn the option back on.
  4. If errors remain, disable other plugins one at a time, or switch to a default theme on a staging copy, until the error goes away.

A page cache can also serve an old copy of the form. If you added a new required field, the cached page does not have it, but the server expects it, so every submission fails. Clear the cache after every form change.

You edited a different form from the one on the page

Each form has its own shortcode, such as [contact-form-7 id="a1b2c3d" title="Contact form 1"]. If you duplicated a form and edited the copy, the page still shows the original, with its old required fields and rules. Go to Contact → Contact Forms, compare the shortcode in the list with the one in the page editor, and update the page if they differ.

Test the form while logged out, in a private browser window. Logged-in admins often see a different, uncached version of the page, so the form can work for you and fail for everyone else.

Step 3: change the message text if you need to

Edit the form and open the Messages tab. The general message is labelled “Validation errors occurred”, and each field tip has its own entry. Only plain text is allowed. You can make the text clearer, for example “Please check the fields marked in red and try again.”, but the fix is always in the form itself.

When validation passes but no email arrives

Once the fields are fixed, the form moves on to sending. If visitors now see the green “Thank you for your message. It has been sent.” but you still receive nothing, the problem has moved to email delivery. Start with why a form can say it was sent while no email arrives, and the general guide on contact forms not sending email.

Frequently asked questions

Does “One or more fields have an error” mean my email is broken?

No. Contact Form 7 shows this message when a field fails its checks. The email step has not started yet, so your mail settings are not involved. Fix the field and the form will move on to sending.

Why do I see the error but no message under any field?

The field that failed is not visible. It may be hidden with CSS, hidden by a conditional-logic add-on, or covered by your theme’s styling. Search the page in your browser’s developer tools for wpcf7-not-valid-tip to find it.

Can I change the wording of this message?

Yes. Edit the form and open the Messages tab. The message is listed as “Validation errors occurred”. Use plain text only; Contact Form 7 does not allow HTML in messages.

My form has reCAPTCHA. Can a failed reCAPTCHA check cause this message?

Not with Contact Form 7’s built-in reCAPTCHA or Turnstile integration. When those checks fail, the submission is treated as spam and the spam message is shown instead. Its default text is “There was an error trying to send your message. Please try again later.”

Is the visitor’s message saved when validation fails?

No. A submission that fails validation is not sent and is not stored by Flamingo. The visitor has to correct the field and submit again.

Related reading

Get your contact form emails delivered

SecureSMTP sends your form notifications through an authenticated mail service with SPF, DKIM and DMARC in place, and shows the result of every email in a delivery log.

or sign up with email

Free plan: 5,000 emails a month. No card needed. Set up takes about five minutes.