A 406 Not Acceptable error after form submission in Webflow typically means the server cannot return a response that matches the criteria defined by the client’s request headers, usually due to content type or format mismatches.
- Webflow-hosted forms use Webflow's built-in form handling. If you changed the Form Action (via the Form Settings panel or custom embed), Webflow no longer manages the submission.
- If you're pointing the form to a third-party endpoint, confirm that the endpoint accepts the format Webflow sends (typically
application/x-www-form-urlencoded
by default). - Third-party APIs may expect a different format like JSON. If they do not accept the form submission as-is, the server may return a 406 error.
- Use your browser’s Developer Tools > Network tab to preview the submission request.
- Look at the Request Headers, especially the Accept header. It usually includes:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
- If the endpoint strictly requires a particular content type—like only JSON—it may reject the request and trigger a 406.
3. Check Server Configuration or API Policy
- A 406 may be triggered if the server is configured to reject certain accepted media types.
- If you're using a custom backend, check its content negotiation policy or headers it expects in the request.
- Some APIs may reject form submissions that are not sent with specific headers like
Content-Type: application/json
.
- If your form points to a third-party CMS, API, or site with security layers (e.g., mod_security on Apache), the request may be blocked based on pattern matching or unexpected header values.
- Webfirewalls or custom middleware may interpret Webflow form submissions as potential threats if they don’t meet expected formats.
- To isolate the issue, remove any custom action URLs and test the form using Webflow's default form submission feature (stored submissions).
- If that works, the issue lies with the external endpoint or submission method, not Webflow.
Summary
A 406 error after form submission typically occurs when a third-party endpoint rejects the request due to content-type mismatch or unsupported headers. Test with a Webflow-native form, then verify that your external endpoint supports the format Webflow sends and isn't restricted by server settings or middleware.