Reproduction steps:
1. Open any Unity project
2. Create a GameObject (Ctrl + Shift + N)
3. Duplicate the GameObject at least twice (Ctrl + D)
4. Multi-select the duplicate GameObjects and drag them inside the original GameObject
5. Undo (Ctrl + Z)
6. Redo (Ctrl + Y)
Expected result: No additional corrupted GameObjects are created and no errors are logged
Actual result: Additional corrupted GameObjects are created and the “Assertion failed on expression: 'GetParent() == nullptr'“ errors are logged
Reproduced in: 2022.2.0a3, 2022.2.0b2, 2023.1.0a3
Not reproduced in: 2020.3.37f1, 2021.3.6f1, 2022.1.10f1, 2022.2.0a2
Reproduced on: Windows 10/11, macOS Monterey 12.0.1 (Intel)
Notes:
1. The corrupted GameObjects disappear after reopening the scene
2. Crash on ‘GameObjectHierarchyProperty::GetColorCode’ when trying to delete the corrupted GameObjects