Global navigation broken in publishing portal site
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
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).
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!
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

I'm working on this now, if I resolve it i'll post here immediately so that you can try. - IIS reset fixed this for me. I hope it's that easy for you
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
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.
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).
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.
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!
- thanks I'm goint to try it!!
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.
- 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


