Troubleshooting
Troubleshoot FormsFort email delivery, CORS, rate limits, captcha, server-side submissions, and file uploads.
Troubleshooting
Debug form delivery from request to worker. Start with the request ID returned by the API, then inspect redacted submission events, email delivery state, and integration delivery state from the dashboard.
Common issues
No email received
Confirm the recipient is verified, the form is live, the submission was accepted, and the email worker processed the queued delivery.
Email has no fields
Every custom input must have a name attribute. Reserved fields are handled separately and unnamed fields are ignored by browsers.
CORS or redirect errors
Use application/json or FormData for JavaScript fetches. Keep hosted redirects for plain HTML form posts.
403 server-side submission
Requests without Origin or Referer need a paid/manual entitlement and an exact sender IP safelist on the form.
429 rate limited
Wait for the fixed window to clear, then test more slowly. Persistent abuse can be blocked with admin abuse rules.
Attachments rejected
Check the plan gate, file count, file size, MIME allowlist, and scanner result before retrying.
JavaScript submission pattern
JavaScript submissions should send JSON and handle JSON responses. Put browser redirects in your success handler instead of mixing a hidden redirect field with fetch.
const response = await fetch("https://api.formsfort.dev/submit", {
method: "POST",
headers: {
"content-type": "application/json",
accept: "application/json",
},
body: JSON.stringify({
access_key: "YOUR_ACCESS_KEY",
name: "Ada",
email: "[email protected]",
message: "Hello",
}),
});
const result = await response.json();
if (response.ok) {
window.location.href = "/thanks";
}Support checklist
If you are an admin or operator, these endpoints can help diagnose issues:
GET /v1/forms/{formId}/events
GET /v1/forms/{formId}/deliveriesUse your admin dashboard or contact support with the request ID for help.