Skip to content

Troubleshooting

Formkove sends notification emails instantly. If you don’t see one:

  1. Confirm the address: each notification recipient must click the link in the verification email before it receives anything. Check the recipient list in the form’s Settings.
  2. Wait a bit: delivery can take up to 2 minutes in rare cases
  3. Check Spam/Junk and Promotions, and mark the email as “not spam”
  4. AI spam filter: on AI-enabled forms, submissions classified as spam don’t trigger notifications. Check the submissions table with the spam filter.
  5. Unsubscribed or bouncing: a recipient who clicked Unsubscribe is removed from the form, so add and verify it again. Addresses that hard-bounced or marked an email as spam are suppressed; contact support with your form ID to lift it.

Make sure every form field has a name attribute:

<!-- ✗ Missing name — data won't send -->
<input type="text" placeholder="Email">
<!-- ✓ Has name — data will send -->
<input type="text" name="email" placeholder="Email">

If you see a CORS error in the browser console when submitting via fetch:

Most likely cause: your site isn’t in the form’s Allowed Origins. Open the form’s Settings → Allowed Origins & Redirects and add the exact origin your page runs on, e.g. https://example.com (add http://localhost:4321 or similar while developing). A bare domain like example.com also covers its subdomains.

Second cause: the request is in HTML mode, so Formkove answers with a redirect. When submitting with JavaScript, send Accept: application/json so you always get JSON back:

// ✓ Correct — returns JSON, no redirect
fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },
body: JSON.stringify(data)
});

If you’re using the HTML form action attribute directly (not JavaScript), none of this applies. The browser follows the redirect naturally.

Form works locally but not on my hosted domain

Section titled “Form works locally but not on my hosted domain”

Your production origin is probably missing from Allowed Origins. Add it (e.g. https://my-site.vercel.app or https://example.com) and try again. If you use ?redirect=, the redirect domain must be in the list too.

This is usually a content-type mismatch or an incorrect request method. The API only accepts POST requests. If you are submitting via JavaScript and get a 405, make sure you are not using GET and that you set Content-Type: application/json to prevent redirects.

Each IP can send 10 submissions per minute and 30 per hour to one form. The Retry-After header tells you how many seconds to wait. If you’re testing, add delays between submissions.

The workspace has used its monthly submissions. See What happens when I hit my submission limit?

The form was disabled after an abuse review. Contact [email protected] if you think this is a mistake.

  • Check that you’re using the correct Form ID from your Formkove dashboard
  • Make sure there are no typos in the URL
  • The Form ID goes in the URL path, not as a hidden field (when using the direct URL method)
  1. Check the form’s Integrations → Delivery history for errors
  2. Make sure the workspace is on Pro or Agency and the connection is enabled
  3. Check the connection’s Routing rules, and whether AI marked the submission as spam
  4. Test with webhook.site to confirm Formkove is sending the payload

Still stuck? Check the FAQ for more common questions.