# How to be backward compatible when removing a property from TestStep

**URL:** <https://forum.opentap.io/t/how-to-be-backward-compatible-when-removing-a-property-from-teststep/995>\
**Category:** Technical\
**Tags:** plugin\
**Created:** [January 16, 2023, 4:16am UTC](https://forum.opentap.io/t/how-to-be-backward-compatible-when-removing-a-property-from-teststep/995 "2023-01-16T04:16:17Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ya-ping\_zhang](https://avatars.discourse-cdn.com/v4/letter/y/ee59a6/32.png) [@ya-ping\_zhang](https://forum.opentap.io/u/ya-ping_zhang)\
**Post date:** [January 16, 2023, 4:16am UTC](https://forum.opentap.io/t/how-to-be-backward-compatible-when-removing-a-property-from-teststep/995/1 "2023-01-16T04:16:17Z")

</div>

My plugin has been released to customers.  
Now, I am doing enhancements to the plugin, I want to remove one property in one TestStep, which has been released in the first release.

However, if I load a legacy TapPlan, it will report error message, like:  
11:49:59.075 Serializer XML Line 103: Unable to read element ‘UsbCt’. The property does not exist.

I understand why the error is reported, and there is way for user to ignore the message.  
But this may confusing customer; so I am wondering if there is a way to turn off such error message when loading tap plan file.

---

<div class="post-metadata">

**Author:** ![ya-ping\_zhang](https://avatars.discourse-cdn.com/v4/letter/y/ee59a6/32.png) [@ya-ping\_zhang](https://forum.opentap.io/u/ya-ping_zhang)\
**Post date:** [January 16, 2023, 5:17am UTC](https://forum.opentap.io/t/how-to-be-backward-compatible-when-removing-a-property-from-teststep/995/2 "2023-01-16T05:17:49Z")

</div>

Just found one workaround,  
instead of removing the property, I can just mark it with [XmlIgnore] attribute and leave it.

If you have a better way to handle such case, I would like to hear.

---

<div class="post-metadata">

**Author:** ![btyilmaz](https://avatars.discourse-cdn.com/v4/letter/b/a3d4f5/32.png) [@btyilmaz](https://forum.opentap.io/u/btyilmaz)\
**Post date:** [January 16, 2023, 5:26am UTC](https://forum.opentap.io/t/how-to-be-backward-compatible-when-removing-a-property-from-teststep/995/3 "2023-01-16T05:26:06Z")

</div>

I dont know if your customers can create or save test plans, but you can save the loaded legacy test plan to serialize it with your current class. This will overwrite the .TapPlan file and your old property will not be shown. My suggestion would be update the test plans and send them to your customers.

---

<div class="post-metadata">

**Author:** ![ya-ping\_zhang](https://avatars.discourse-cdn.com/v4/letter/y/ee59a6/32.png) [@ya-ping\_zhang](https://forum.opentap.io/u/ya-ping_zhang)\
**Post date:** [January 16, 2023, 5:58am UTC](https://forum.opentap.io/t/how-to-be-backward-compatible-when-removing-a-property-from-teststep/995/4 "2023-01-16T05:58:43Z")

</div>

Thanks for the suggestion!  
My customers can create/save test plans, and I will re-generate the default test plan files in the new release.

---

<div class="post-metadata">

**Author:** ![brennen\_direnzo](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.opentap.io/brennen_direnzo/32/6_2.png) [@brennen\_direnzo](https://forum.opentap.io/u/brennen_direnzo)\
**Post date:** [January 17, 2023, 3:57pm UTC](https://forum.opentap.io/t/how-to-be-backward-compatible-when-removing-a-property-from-teststep/995/5 "2023-01-17T15:57:20Z")

</div>

@ya-ping_zhang I think your solution works fine. In our case, we have moved old steps to a “Legacy” group, so that they are still accessible, but more hidden:

> <https://github.com/opentap/opentap/blob/24953407f1f46d2948a42d841e0180b6ee0c3a9d/BasicSteps/SweepLoop.cs>

---

<div class="post-metadata">

**Author:** ![ya-ping\_zhang](https://avatars.discourse-cdn.com/v4/letter/y/ee59a6/32.png) [@ya-ping\_zhang](https://forum.opentap.io/u/ya-ping_zhang)\
**Post date:** [January 18, 2023, 3:07am UTC](https://forum.opentap.io/t/how-to-be-backward-compatible-when-removing-a-property-from-teststep/995/6 "2023-01-18T03:07:10Z")

</div>

Thanks for your reply!
