Short version: Creating a NSLayoutAttributeCenterX constraint always causes a constraint failure. Why?
I have a UITextField subclass which behaves as a search textbox. You tap the box and a list of items appear, the items are filtered by what you type. Like this:

The UITextField subclass is responsible for creating and displaying the view of items. The center of the list should match the textfield's center. So, I set my constraint like this:
NSLayoutConstraint *hugCenter =
[NSLayoutConstraint constraintWithItem:self.searchContainerView
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self
attribute:NSLayoutAttributeCenterX
multiplier:1.0
constant:0.0];
This invariably leads to the error:
Will attempt to recover by breaking constraint NSLayoutConstraint:0x9a5e1a0 UIView:0x9a5ba40.centerX == SearchTextField:0x7154a40.centerX
For testing I've made my scene as simple as possible -- 1 textfield on a view controller:

Why does this cause a constraint error?