prefab variant lost data if it contains an component which has ISerializationCallback

I have a component with Dictionary<>. since it is not serializable by default, I implement the ISerializationCallbackReciver to save it as keys[ ] and values[ ], it works fine until I create a prefab variant from that prefab, the dictionary in the variant is empty, even I “revert” the variant, it looks ok in the inspector , but after you select other object and reopen the variant , the dictionary still empty

@FancyZero

Can you please file a bug report with a small example project so we can reproduce the issue and have a look at it.

here is the project
I just copy the code from ISerializeCallbackReceiver demo on unity manual & documentation page
you can see the gameobject variant lost all data here, even you revert it, it still lost everything after you switch to other object and back
I have been tested with 2018.3.0 , 3.2 3.3 only 3.0 works fine

here is the video, it’s very obvious

4165357–367708–PrefabVariantBug.zip (6.98 KB)

any news? @SteenLund

I also posted a bug case No. 1122536

It looks like Dictionary<> always lost its key and values when a prefab variant is going to be serialized

must be the same issue