locked
Global navigation broken in publishing portal site

    Question

  • Hi all,

     

    I need your wisdom for this one cause it's bugging me bigtime. I hope you can help. In advance I'm sorry that it;s a long message, but I thought it may be wise to include the full ULS trace message.

     

    I have a website based on a custom site definition with publishing features. This site is the new corporate website for an international lawfirm. In the site we use variations for multilingual support. The site is in Dutch (Which is the source variation), English and French. We have been testing the site for a while and are now migrating the content. All is rather going well.

     

    Recently, for some unknown reason a part of the global navigation breaks. When I look at the Duth and French navigation, I see the navigation as it should be. However, looking at the English navigation I only have a "Home" tab and a tab next to it which says "Error". When I hoover the mouse over this I see the following error:

     

    An error occurred while rendering navigation for requested URL: /en-US. Exception message: Object reference not set to an instance of an object.

     

    At the same time the following trace is logged in the ULS:

     

    Exception thrown while attempting to initialize ChildPageIds, message: Object reference not set to an instance of an object., stack trace: at Microsoft.SharePoint.Workflow.SPWorkflowAssociationCollection.GetAssociationForListItemById(SPListItem item, Guid associationId, TriState tListAssociation) at Microsoft.SharePoint.Workflow.SPWorkflowAssociationCollection.GetAssociationForListItemById(SPListItem item, Guid associationId) at Microsoft.SharePoint.Workflow.SPWorkflow.GetReadOnlyParentAssociation() at Microsoft.SharePoint.Workflow.SPWorkflow.get_ParentAssociation() at Microsoft.SharePoint.Publishing.CachedWorkflow..ctor(SPWorkflow workflow) at Microsoft.SharePoint.Publishing.CachedListItem.GetWorkflowInfo(SPListItem item) at Microsoft.SharePoint.Publishing.CachedListItem..ctor(SPListItem item, SPListItem alternateItem, NodeTypes nodeType, String id, String parentId, String title, String url, String description, CachedObjectFactory factory, List`1& fieldInfo) at Microsoft.SharePoint.Publishing.CachedPage.ctor(PublishingPage page, SPListItem altItem, String id, String parentId, String title, String url, String description, CachedObjectFactory factory, List`1& fieldInfo) at Microsoft.SharePoint.Publishing.CachedPage.CreateCachedPage(PublishingPage page, SPListItem altItem, CachedObjectFactory factory, List`1& fieldInfo) at Microsoft.SharePoint.Publishing.CachedObjectFactory.CreateObject(PublishingPage adminPage, PublishingPage readerPage, List`1& fieldInfo) at Microsoft.SharePoint.Publishing.CachedArea.GetChildPageIds() PortalSiteMapProvider was unable to fetch children for node at URL: /en-US, message: Object reference not set to an instance of an object., stack trace: at Microsoft.SharePoint.Workflow.SPWorkflowAssociationCollection.GetAssociationForListItemById(SPListItem item, Guid associationId, TriState tListAssociation) at Microsoft.SharePoint.Workflow.SPWorkflowAssociationCollection.GetAssociationForListItemById(SPListItem item, Guid associationId) at Microsoft.SharePoint.Workflow.SPWorkflow.GetReadOnlyParentAssociation() at Microsoft.SharePoint.Workflow.SPWorkflow.get_ParentAssociation() at Microsoft.SharePoint.Publishing.CachedWorkflow..ctor(SPWorkflow workflow) at Microsoft.SharePoint.Publishing.CachedListItem.GetWorkflowInfo(SPListItem item) at Microsoft.SharePoint.Publishing.CachedListItem..ctor(SPListItem item, SPListItem alternateItem, NodeTypes nodeType, String id, String parentId, String title, String url, String description, CachedObjectFactory factory, List`1& fieldInfo) at Microsoft.SharePoint.Publishing.CachedPage.ctor(PublishingPage page, SPListItem altItem, String id, String parentId, String title, String url, String description, CachedObjectFactory factory, List`1& fieldInfo) at Microsoft.SharePoint.Publishing.CachedPage.CreateCachedPage(PublishingPage page, SPListItem altItem, CachedObjectFactory factory, List`1& fieldInfo) at Microsoft.SharePoint.Publishing.CachedObjectFactory.CreateObject(PublishingPage adminPage, PublishingPage readerPage, List`1& fieldInfo) at Microsoft.SharePoint.Publishing.CachedArea.GetChildPageIds() at Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider.UserHasRightsToCachedObject(CachedObject cachedObject, SPWeb currentContext) at Microsoft.SharePoint.Publishing.Navigation.CachedObjectSiteMapNode.IsAccessibleToUser(SPWeb contextWeb) at Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapNode.GetNavigationChildren(NodeTypes includedTypes, NodeTypes includedHiddenTypes, OrderingMethod ordering, AutomaticSortingMethod method, Boolean ascending, Int32 lcid) at Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapNode.GetNavigationChildren(NodeTypes includedHiddenTypes) at Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider.GetChildNodes(PortalSiteMapNode node, NodeTypes includedHiddenTypes)

     

    Luckely all the content is still there, the site structure is still intact and also the variation navigation still works. When I go the the navigation settings page for the English site, no sites are listed, despite the fact that the settings for the global navigation is that it shows the navigation of the parent site.

     

    My hair is turning gray here so I hope you can help.

     

    Thanks,

    Henk

    Tuesday, February 05, 2008 9:59 PM

Answers

  • I believe the problem is that navigation is querying a page with a workflow, however its workflow association has been removed (due to bad GUID update perhaps). The association GUID on the running workflow should match the association on its list so I'm not quite sure why this wouldn't be the case. Is this an upgraded machine?  Is there something special about this install?

     

    Since its impossible for the workflow to run if its association is null, it’s a safe bet you can simply terminate the workflow and the problem should go away. Unfortunately, the workflow UI would probably also hit this bug - give it a try if only to confirm the problem. Using the OM would also work: SPWorkflowManager.CancelWorkflow(workflow).

    Wednesday, February 13, 2008 2:18 PM
  • Chris dude, you rock!

     

    Your reply set us off in the right direction. We solved the problem!

     

    For all of you that encounter the same problem: My collegue Sjoert Ebben wrote a nice blog post on this subject and also wrote a small console application that fixes the issue. Oh yeah it's free to use and extend of course.

     

    Chris man...thanks again!

     

    Thursday, March 20, 2008 9:30 AM

All replies

  • I'll bump this thread becuase I'm having the *identical* issue, and this is the sole google result for it right now Smile

    I'm working on this now, if I resolve it i'll post here immediately so that you can try.
    Tuesday, February 12, 2008 4:48 PM
  • IIS reset fixed this for me. I hope it's that easy for you

     

    Tuesday, February 12, 2008 9:05 PM
  • Hi VetteKerry,

     

    I tried IISReset (a couple of times) and even a server reboot, but that didn't solve it. I'm afraid that solution is a bit to easy for me

    Wednesday, February 13, 2008 6:48 AM
  • Thanks Stefan,

     

    I hope you find a solution. The behavior is very strange. For some strange reason the navigation worked again for a while, then after a day it broke again. And now it works again.

     

    It's nice that it works again, but I don't have a good feeling about this...It can break again, so I would indeed really appreciate it if you post the solution when you find it.

     

    Wednesday, February 13, 2008 6:52 AM
  • I believe the problem is that navigation is querying a page with a workflow, however its workflow association has been removed (due to bad GUID update perhaps). The association GUID on the running workflow should match the association on its list so I'm not quite sure why this wouldn't be the case. Is this an upgraded machine?  Is there something special about this install?

     

    Since its impossible for the workflow to run if its association is null, it’s a safe bet you can simply terminate the workflow and the problem should go away. Unfortunately, the workflow UI would probably also hit this bug - give it a try if only to confirm the problem. Using the OM would also work: SPWorkflowManager.CancelWorkflow(workflow).

    Wednesday, February 13, 2008 2:18 PM
  • can you find a solution?

     

    I have the same problem and i try to create a new maser page and do an iisreset

    but i don't have good news.

     

    Tuesday, February 26, 2008 12:01 PM
  • Chris dude, you rock!

     

    Your reply set us off in the right direction. We solved the problem!

     

    For all of you that encounter the same problem: My collegue Sjoert Ebben wrote a nice blog post on this subject and also wrote a small console application that fixes the issue. Oh yeah it's free to use and extend of course.

     

    Chris man...thanks again!

     

    Thursday, March 20, 2008 9:30 AM
  • thanks I'm goint to try it!!

     

    Thursday, March 20, 2008 11:41 AM
  • I had a same problem but it happened on the NLB servers.  I have a mid- farm topology with 2 WFE,  and configured as follow:

    NLB name :   MOSS-NLB

     

    WFE1:   MOSS1

    WFE2:   MOSS2

     

    When I browsed to  http://MOSS-NLB/pages/default.aspx  then global navigation displayed properly

    but when I browsed to http://MOSS1/pages/default.aspx or http://MOSS2/pages/default.aspx  I got the global navigation broken as with only HOME tab and Error tab as reported. When I layed the mouse over the Error tab,  I saw the same error description..

     

    Should I follow the solution suggested from this blog or is there other area that caused this problem;

    Thanks you for sharing your knowledge.

     

     

    Wednesday, June 18, 2008 3:22 PM
  • i got same problem .When i reset the iis it got ok .But when i click on the Tab it give me error ..Please tell why it happen and how to overcome ...



    pradipta nayak
    Thursday, August 28, 2008 5:19 AM
  • hey- i was in the same situation as you. here is wat sovled my problem

    i deleted the extended web application for load balancing and again extened the web application.

    Tuesday, September 13, 2011 9:49 AM