There are a few reasons why the ReleaseContact
processor might be skipped.
Here is the code for that method:
public void Process(PipelineArgs args)
{
if (Tracker.Current == null)
{
Log.Debug("Tracker is not initialized. ReleaseContact processor is skipped");
}
else
{
Session session = Tracker.Current.Session;
Assert.IsNotNull((object) session, "Tracker.Current.Session");
if (session.TransferInProcess)
Log.Debug("Contact is being transferred. ReleaseContact processor is skipped");
else if (session.Contact == null)
Log.Debug("Contact is null. ReleaseContact processor is skipped");
else if (session.Settings.IsTransient)
{
Log.Debug("Session is in TRANSIENT MODE. ReleaseContact processor is skipped");
}
else
{
if (session.IsReadOnly)
return;
ContactManager contactManager = Factory.CreateObject("tracking/contactManager", true) as ContactManager;
string message = "tracking/contactManager";
Assert.IsNotNull((object) contactManager, message);
Contact contact = session.Contact;
contactManager.SaveAndReleaseInSharedSessionState(contact);
session.Contact = (Contact) null;
}
}
}
As you can see, if the Tracker is not enabled, a transfer is already in process, the session.Contact
is null or session.Settings.IsTransient
is true. In any of those situations the processor is skipped. Your log files should tell you which.
Based on your statement that Tracker.IsActive == false
my guess is your logs look like this:
5000 15:54:43 DEBUG [Analytics]: Tracker.IsActive == false. EndAnalytics pipeline is terminated
5000 15:54:43 DEBUG Tracker is not initialized. ReleaseContact processor is skipped
In that case check the following settings in your config. They need to both be set to true:
<setting name="Xdb.Enabled" value="true" />
<setting name="Xdb.Tracking.Enabled" value="true" />
Also, make sure that the enableAnalytics
attribute on your site definition is not false
.
Another thing to check is that you have @Html.Sitecore().VisitorIdentification()
in your main layout file.
Hopefully this should get you close.
ReleaseContact
processor might get skipped.