Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unpublished content throws error with alternate template, instead of 404 #6564

Closed
benjaminc opened this issue Oct 2, 2019 · 1 comment
Closed

Comments

@benjaminc
Copy link
Contributor

A page will throw an error when it has been unpublished and you try to access it using an alternate template.

Reproduction

Bug summary

Accessing an unpublished page displays the 404 page. However if you try to access the same unpublished page using an alternate template, a 500 error is returned. It does not matter whether or not the alternate template is valid for the document type of the page, simply that it exists as a template, and the ability to use alternate templates has not been disabled.

Specifics

This happens on any unpublished page's URL. I have tested it on Umbraco 7.15.3.

Steps to reproduce

  1. Start a 7.15.3 site (for example, the sample site on a new 7.15.3 instance)
  2. Go to a valid page, verify that it displays correctly (i.e. /about-us)
  3. Go to a valid alternate template version of that page, verify that it displays correctly (i.e. /about-us/contentpage)
  4. Unpublish the page in the back-office
  5. Go the the page's URL, verify you get a 404 (i.e. /about-us)
  6. Go to a valid alternate template URL, see the 500 (i.e. /about-us/contentpage)
  7. Go to an invalid alternate template URL, see the same 500 (i.e. /about-us/home)

Expected result

Any alternate template page for an unpublished page should return a 404

Actual result

Alternate template pages return a 500 error with the output below.

Server Error in '/' Application.
Object reference not set to an instance of an object.
Description:
An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details:
System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:
[NullReferenceException: Object reference not set to an instance of an object.]
   Umbraco.Web.PublishedContentExtensions.IsAllowedTemplate(IPublishedContent content, Int32 templateId) +137
   Umbraco.Web.Routing.ContentFinderByNiceUrlAndTemplate.TryFindContent(PublishedContentRequest docRequest) +594
   Umbraco.Web.Routing.ContentFinderByNotFoundHandlers.HandlePageNotFound(PublishedContentRequest docRequest) +699
   Umbraco.Web.Routing.ContentFinderByNotFoundHandlers.TryFindContent(PublishedContentRequest docRequest) +15
   System.Linq.Enumerable.Any(IEnumerable`1 source, Func`2 predicate) +174
   Umbraco.Web.Routing.PublishedContentRequestEngine.FindPublishedContent() +387
   Umbraco.Web.Routing.PublishedContentRequestEngine.FindPublishedContentAndTemplate() +296
   Umbraco.Web.Routing.PublishedContentRequestEngine.PrepareRequest() +123
   Umbraco.Web.UmbracoModule.ProcessRequest(HttpContextBase httpContext) +474
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +222
   System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +219
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +93

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.8.3752.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants