This occurs because the correct value to save for location_type_id of Primary is '' but the current code winds up casting to 0
which won't save as it there is a foreign key involved. Handling was previously added but only to the
(duplicate) code that deals with non-relationship fields
https://github.com/eileenmcnaughton/civicrm-core/blob/
cd41fa5b5599b329bd6f54acf0a79dda85477804/CRM/Contact/Import/Form/MapField.php#L724
elseif (CRM_Utils_Array::value('1', $mapperKeys[$i]) == 'im') {
$updateMappingFields->im_provider_id = isset($mapperKeys[$i][3]) ? $mapperKeys[$i][3] : NULL;
}
- $updateMappingFields->location_type_id = isset($mapperKeys[$i][2]) ? $mapperKeys[$i][2] : NULL;
+ $updateMappingFields->location_type_id = isset($mapperKeys[$i][2]) && is_numeric($mapperKeys[$i][2]) ? $mapperKeys[$i][2] : NULL;
}
}
else {