404 errors

There are legitimate reasons why a Page Not Found error (404) occurs on your website.

Diagnosing 404 errors

Sometimes it's difficult to know why a 404 error is occurring on your website. Especially as your website grows and gets more complicated. To help diagnose dreaded ""Page Not Found" issues, Evance includes a X-Reason header with most 404 errors. You can use your Browser's developer tools or an application like Postman to request your web page's URL.

X-Reason rules

category/not-found
Evance was unable to find a Category by a current or historical globlised URI (e.g. /en-us/my-page is converted to /my-page).
category/no-template
Although the Category was found, Evance determined that it could not identify the Category's template. This should be extremely rare as templates are selected at page creation, but if this is altered incorrectly via API (for example) it could result in a 404 error.
category/locale-restriction
The Category was identified, but a Locale Restriction in the Category's settings is blocking the request for the current Locale. This means the website's administrator does not wish the Category to be viewed on the current Locale and has not provided an alternative URI.
category/disabled
The Category exists, but has been disabled.
category/not-public
This is a catch-all rule for any unknown reason the Category is unavailable. Theoretically, you should never encounter this error.
page/not-found-closest

Evance was unable to find a Page by a current or historical globlised URI (e.g. /en-us/my-page is converted to /my-page).

If no direct match is found, Evance will attempt to find the Page's closest ancestor. This is applicable to Pages with pagination where filtering is permitted via extended URIs. For example, where a Blogs URI may include tags.
page/no-template
Although the Page was found, Evance determined that it could not identify the Page's template. This should be extremely rare as templates are selected at page creation, but if this is altered incorrectly via API (for example) it could result in a 404 error.
page/not-paginated
The Page was identified using a Closest Alias Ancestor lookup, but the page does not support pagination, which means the URI requested should result in a 404 error.
page/locale-restriction
The Page was identified, but a Locale Restriction in the Page's settings is blocking the request for the current Locale. This means the website's administrator does not wish the Page to be viewed on the current Locale and has not provided an alternative URI.
page/not-published
The Page exists but has either a) not been published, or b) the publish date in the Page's settings is in the future.
page/expired
The Page has expired due to an expiration date in the Page's settings.
page/not-public
This is a catch-all rule for any unknown reason the Page is unavailable. Theoretically, you should never encounter this error.
product/not-found
Evance was unable to find a Product by a current or historical globlised URI (e.g. /en-us/my-page is converted to /my-page).
product/no-template
Although the Product was found, Evance determined that it could not identify the Product's template. This should be extremely rare as templates are selected at page creation, but if this is altered incorrectly via API (for example) it could result in a 404 error.
product/locale-restriction
The Product was identified, but a Locale Restriction in the Product's settings is blocking the request for the current Locale. This means the website's administrator does not wish the Product to be viewed on the current Locale and has not provided an alternative URI.
product/disabled
The Product exists, but has been disabled.
product/not-public
This is a catch-all rule for any unknown reason the Product is unavailable. Theoretically, you should never encounter this error.