Reproduction steps:
1. Open the attached project “AnimCrash”
2. In the Hierarchy window select Prefab → Canvas → Image GameObject
3. Open Windows → Animation → Animation window
4. In the Animation window click on the “Create” button and create a new animation file
Expected result: New animation file is created
Actual result: Editor crashes
Reproducible with: 2022.2.0a15, 2022.2.1f1, 2023.1.0a21
Not reproducible with: 2020.3.44f1, 2021.3.18f1, 2022.1.24f1, 2022.2.0a14, 2023.1.0b2
Fixed in: 2022.2.2f1, 2023.1.0a22
Reproducible on: macOS 13.1 (Intel)
Stacktrace:
#0 0x00000105b4f310 in GetScriptLocalIdentifier(Object*) 2
#1 0x00000105b4ff3c in PersistentManager::WriteFile(core::basic_string_ref<char>, int, WriteData const*, int, GlobalBuildData const&, VerifyWriteObjectResult (Object*, BuildTargetPlatform), BuildTargetSelection, TransferInstructionFlags, WriteInformation&, InstanceIDResolver const*, PersistentManager::LockFlags, int (PersistentManager::ReportWriteObjectStep, int, core::basic_string<char, core::StringStorageDefault<char> > const&, int, void*), void*) 3
#2 0x00000105b4f268 in PersistentManager::WriteFile(core::basic_string_ref<char>, int, WriteData const*, int, GlobalBuildData const&, VerifyWriteObjectResult (Object*, BuildTargetPlatform), BuildTargetSelection, TransferInstructionFlags, InstanceIDResolver const*, PersistentManager::LockFlags, int (PersistentManager::ReportWriteObjectStep, int, core::basic_string<char, core::StringStorageDefault<char> > const&, int, void*), void*) 4
#3 0x0000010688f388 in WriteObjectsToDiskThreadSafe(core::basic_string<char, core::StringStorageDefault<char> > const&, Object*, long long const, unsigned long, TransferInstructionFlags) 5
#4 0x00000106e7d784 in CreateSerializedAssetV2(Object**, int, core::basic_string<char, core::StringStorageDefault<char> > const&, AssetDatabase::CreateAssetMask, AssetResolver const&) 6
#5 0x00000106d46d24 in AssetDatabase::CreateSerializedAsset(Object&, core::basic_string<char, core::StringStorageDefault<char> > const&, AssetDatabase::CreateAssetMask)