XdbModelException: Field could not be found in the model or the field is not enabled for indexing/searching

I was creating a custom segmentation rule predicate for Sitecore 9, and when I tried to create a segment using the rule, I got an error inside Sitecore’s List Manager:

Field could not be found in the model or the field is not enabled for indexing/searching

That’s kind of annoying. What caused this? Well, it was a long, painful odyssey finding out.

TL;DR – If you’re using an extension method to get a facet for your CreateContactSearchQuery method – like Sitecore do – it’s method name must match the Facet Key name. 

No, I’m not kidding.

Continue reading “XdbModelException: Field could not be found in the model or the field is not enabled for indexing/searching”

Advertisements
XdbModelException: Field could not be found in the model or the field is not enabled for indexing/searching

XConnect – Get a contact by their TrackerId…

So, Sitecore 9 has the replaced xDB in MongoDB with XConnect. Fine. Our contacts will be stored there (ultimately, in SQL server). Fine too.

One question though – how do we get the Sitecore.XConnect.Contact object for the current (possibly unidentified) contact?

It used to be that you could get the Contact record from Tracker.Current.Session.Contact, but that doesn’t work any more – that gets the Sitecore.Analytics.Tracking.Contact, which isn’t the same type at the Sitecore.XConnect.Contact which is replacing it. Confused yet?

Well, to make matters worse, the Sitecore.Analytics.Tracking.Contact.ContactId may or may not match the Sitecore.XConnect.Contact.ContactId. I think.

I couldn’t find any information about how to resolve the Tracker ID to the XConnect contact. What’s a boy to do?

EDIT: Sadly, there is a better way than below. Unfortunately, it’s in a different bit of the documentation. See https://doc.sitecore.net/developers/xp/tracking-and-session/tracker/tracking-contacts/contact-facets/update-facets.html

Continue reading “XConnect – Get a contact by their TrackerId…”

XConnect – Get a contact by their TrackerId…

XdbModelException – “The type of this instance does not correspond to any type in the model”

Working with xConnect to save custom facet data, I started getting this error:

An unhandled exception of type ‘Sitecore.XConnect.Schema.XdbModelException’ occurred … The type of this instance does not correspond to any type in the model

Weirdly, the other 3 (nearly identical) facets worked just fine. Tracking down the issue was “fun”…

Continue reading “XdbModelException – “The type of this instance does not correspond to any type in the model””

XdbModelException – “The type of this instance does not correspond to any type in the model”