Raise with some description

While this is still not ideal and we should not allow the association to happen in the first place, we at least indicate what sort of exception occurred.
The one case we can't avoid this situation is prior to the first controller being added. We need to add validation in the near term to prevent > 1, but this exception is also thrown if there are no controllers added yet (since we have no IPs). It might be better in the "size == 0" case to simply say that no controller has been added yet.