I've got an issue where the tertiary level navigation randomly dissappears on a publishing SharePoint 2010 site. I can reproduce the dissappearance by recycling the app pool or flushing the object cache. It seems like it is a caching issue as the navigation providers do use caching for performance. Once the menu dissappears, I can get it back by simply going to the navigation settings for the SPWeb and changing the order of the nodes. This seems to invalidate the cache and the menu appears again.
Below is a snippet of the portalsitemapdatasource and aspmenu elements.
<publishingnavigation:portalsitemapdatasource id="mapThirdLevelNavigation" runat="server" sitemapprovider="CurrentNavigation" enableviewstate="false" startfromcurrentnode="true" startingnodeoffset="1" showstartingnode="false" TreatStartingNodeAsCurrent="False" /> <sharepoint:aspmenu id="mnuBottomNavigation" runat="server" datasourceid="mapTopNavigation" enableviewstate="false" accesskey="<%$Resources:wss,navigation_accesskey%>" orientation="Horizontal" maximumdynamicdisplaylevels="0" dynamichorizontaloffset="0" staticpopoutimagetextformatstring="" skiplinktext="" staticsubmenuindent="0" cssclass="bottom-topNavContainer" />
Google hasn't been very helpful so any assistance provided is very much appreciated.
Edit: Just noticed that I didn't need to change the order of the nodes for the menu items to reappear, just loading the _layouts/AreaNavigationSettings.aspx page for the SPWeb object does the trick. It's looking even more like a cache issue.