I am seeing the following error in the logs for the CM I am setting up for one of our clients, in preparation for launch of their Sitecore 8.1u2 site:
4972 16:30:56 ERROR Sitecore.Analytics.Tracker Cannot start analytics Tracker
Exception: System.Web.HttpException Message: The session ID is longer than the maximum limit of 80 characters. Session ID=DictionaryDataReferringSiteDatacm.myclientsname.clientabbrev-prd-cm1.mydelphic.com Source: System.Web at System.Web.SessionState.SessionIDManager.CheckIdLength(String id, Boolean throwOnFail) at System.Web.SessionState.InProcSessionStateStore.DoGet(HttpContext context, String id, Boolean exclusive, Boolean& locked, TimeSpan& lockAge, Object& lockId, SessionStateActions& actionFlags) at System.Web.SessionState.InProcSessionStateStore.GetItem(HttpContext context, String id, Boolean& locked, TimeSpan& lockAge, Object& lockId, SessionStateActions& actionFlags) at Sitecore.Analytics.Data.Dictionaries.DictionaryData.Session.SessionDictionaryData.LoadAs[T](Object key) at Sitecore.Analytics.Data.Dictionaries.TrackingDictionary`2.Get(TKey key, LookupStrategy strategy) at Sitecore.Analytics.Pipelines.TrafficTypes.ReferringSite.Process(TrafficTypeArgs args) at (Object , Object ) at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) at Sitecore.Analytics.Pipelines.TrafficTypes.TrafficTypePipeline.Run(TrafficTypeArgs args) at Sitecore.Analytics.Pipelines.CreateVisits.SetTrafficType.Process(CreateVisitArgs args) at (Object , Object ) at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) at Sitecore.Analytics.Pipelines.CreateVisits.CreateVisitPipeline.Run(CreateVisitArgs args) at Sitecore.Analytics.Tracking.StandardSession.CreateInteraction(HttpContextBase httpContext) at Sitecore.Analytics.Pipelines.InitializeTracker.CreateVisit.Process(InitializeTrackerArgs args) at (Object , Object ) at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) at Sitecore.Analytics.Pipelines.InitializeTracker.InitializeTrackerPipeline.Run(InitializeTrackerArgs args) at (Object , Object ) at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) at Sitecore.Analytics.Pipelines.StartTracking.StartTrackingPipeline.Run(StartTrackingArgs args) at Sitecore.Analytics.DefaultTracker.StartTracking()
The error is basically telling me that the
Session ID that was supplied,
DictionaryDataReferringSiteDatacm.myclientsname.clientabbrev-prd-cm1.mydelphic.com (note that while the Session ID I am showing you is not the real one, I did make sure that it is the same length and structure as the real one), is longer than the 80-character maximum.
I can see that the length of the Session ID is, in fact, longer than 80 characters. I did a little digging and found the
Sitecore.FXM.Pipelines.ChooseSessionIdManager.FXMSessionIdManagerProcessor processor of the
<getSessionIdManager> pipeline, but I'm not using FXM, so I want to use the default
SessionIDManager. Aside from adding my own processor to this pipeline, I don't see any way to control the Session ID value, beyond changing the host name of the site, since the host name is being included in the URL.
Is anyone else familiar with this error and how to fix it? Is there another way, beyond changing the host name of the site? Should this issue even be relevant for a CM instance?