A 404 under /my-account/ is about the file, because a signed-out visitor is sent to sign in rather than shown a 404. The rules for the file are under 404 on a page under /my-account/: it must be in your site's folder, at the URL's path plus .html, with no index file, no dot in the path, and the same case. A custom page can also go missing in these ways:
- A built-in screen appears instead. The named routes win. A page called
orders,order,quotes,quote,addresses,address,wishlist,linked-accounts,applicationsorcurrent-activity, or in a folder with one of those names, never renders. Rename it. - The id is in the path.
/my-account/course/42looks forcourse/42.html. Use/my-account/course?id=42and read the parameter in the template. - The page posts a form to itself. The catch-all answers GET only, so a POST never reaches your template. Post to a real route.
- It has not been deployed there. A my-account page is a file in the repository, not a record. A page that works on staging and 404s on production has not been deployed to production.
The full rules are on the my-account area.