Let me paint the scenario.

  1. I have a list of terms in a termset
  2. I have a list with a taxonomy field, this points to the termset
  3. Filtering is working. By this I mean in List settings, under Metadata navigation settings , you can create filters.

  4. I delete all the terms from the termset (But I do not delete the termset).

  5. I recreate all the terms in the termset with the exact same name, description and custom props.
  6. I then visually inspect the list - in the default view I can see the taxonomy field has legitimate values, like it did before. But filtering is not working. No results are returned.

So it would seem that taxonomy field linking in the background happens based on the term ID, which ofc now changes for every term , when I delete and recreate the term.

What to do about this scenario?

My idea is :

Run a clean up command for each affected list after termset contents change. By this I mean scanning each list -> checking each list item, getting the text value of the field, then finding the term based on this, and updating the field value correctly with a term.

Does anyone have a better solution?

Thanks in advance, and sorry for long post.

1 Answer 1


Your solution would be the only way to go. The terms are internally referenced by their id (guid). This id changes if you delete and recreate your terms and the connection to the assigned metadata is lost.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.