I found a little niggle in WordPress when creating a custom form using shortcodes and plain PHP/HTML for processing. Turns out if your form uses $_POST[‘name’] in your form, WP does not like that and serves a Not Found (404) page. Changing that input field name to a different one, say surname, fixed the problem immediately. Took me a good 30 minutes to figure that out!