This could set the host's taxonomy to nil, if there was no fact and the setting didn't point at a known taxonomy (e.g. by default).  I think you need to check that `(taxonomy_from_fact || default_taxonomy).present?` first.