I’ve seen many designers/developers facing an inexplicable issue where a WordPress form goes to 404 Not Found page.
The most obvious reason for this would be that the URL to which the form is submitting is incorrect. But after reviewing the code and making sure that the form submits to the correct URL (which exists), the error may persist and there is a very specific reason for that.
A very common reason for this is that a POST or GET variable is a reserved WordPress term.
So check the fields in your form and make sure that none of the
name attributes of any of the fields are reserved WordPress terms. If you have a field in your form with the name of a reserved WordPress term, WordPress actually needs to use that term for it’s rewrite structure and as a result goes to 404 Not Found.
Reserved WordPress terms in forms break rewrite rules, going to 404 Not Found.
If that was your issue, I hope this helped you and feel free to comment below.