Skip to content

Troubleshooting

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

  1. Wait a bit — delivery can take up to 2 minutes in rare cases
  2. Check Spam/Junk — drag to Primary if it’s there
  3. Check Promotions — Gmail sometimes filters it there
  4. Verify your MX records — your domain needs proper mail DNS for delivery to work

If emails keep bouncing, contact support with your form ID — you may be on a suppression list.

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:

The cause: You’re mixing content types. Using x-www-form-urlencoded with fetch triggers a redirect, which browsers block in CORS contexts.

The fix: Always use application/json when submitting via JavaScript:

// ✗ Wrong — triggers redirect, causes CORS error
fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: JSON.stringify(data)
});
// ✓ Correct — returns JSON, no redirect
fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data)
});

If you’re using the HTML form action attribute directly (not JavaScript), x-www-form-urlencoded is fine — the browser handles the redirect naturally.

Form works locally but not on my hosted domain

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

Formkove blocks certain high-risk free domains and subdomains by default to prevent spam abuse.

If your form works in localhost but fails when deployed:

  • Add a custom domain to your site
  • Contact Formkove support with your domain to request unblocking

Free subdomains from platforms like glitch.io, vercel.app, etc. are not supported on the free plan.

This happens when you call the Formkove API from a server-side environment (Node, PHP, Python, etc.) instead of from the browser.

The Formkove API is designed for client-side use. Your form ID is public-safe and meant to be in the HTML — it doesn’t need server-side hiding.

If you genuinely need server-side submission (e.g., a backend form processor), contact support with your server IP to discuss access.

Too many submissions from the same IP in a short period triggers temporary rate limiting.

Wait an hour and try again. This resets automatically. If you’re testing, add delays between submissions.

  • 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. Verify the webhook URL is correct and uses https://
  2. Make sure the integration is enabled in your form settings
  3. Check that the receiving service (Slack, Zapier, etc.) hasn’t hit its own limits
  4. Test with webhook.site to confirm Formkove is sending the payload