How to reproduce:
1. Open the attached “GenericSerializeReference.zip“ project
2. Open the “SampleScene“ Scene
3. Select the “GameObject“ GameObject in the Hierarchy
4. Observe the Inspector and the Console
Expected result: No warnings in the Inspector or Console
Actual result: “This object contains SerializeReference types which are missing. For more information see SerializationUtility.HasManagedReferencesWithMissingTypes.“ warning in the Inspector and “Missing types referenced from component GenericSerializeReference on game object GameObject: GenericData`1[[IntData, Assembly-CSharp]], Assembly-CSharp (1 object)“ warning in the Console
Reproducible with: 2021.3.29f1, 2022.3.6f1, 2023.1.7f1, 2023.2.0b3
Reproduced on: macOS 13.4.1 (Intel), Windows 10 (by reporter)
Note: Commenting line 12 and uncommenting line 14 in the “GenericSerializeReference“ Script to try and recover references results in “Cannot create an object for class GenericData2`1 that is not yet fully instantiated!“ and “Cannot access reference object for property path '_Data'. The reference managed script might have changed. UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)“ errors in the Console but no warning in the Inspector. After this, commenting line 14 and uncommenting line 12 results in the warnings no longer being shown, except the error “The serialized array of [SerializeReference] objects is missing entry for Refid -2“ in the Console