[Description]
After migrating our project from UE 5.5 to 5.7, we are experiencing a consistent engine crash in the Sequencer. The crash occurs specifically when a user attempts to add a component to a Spawnable Actor while its “Spawned” track is set to False.
[Reproduction Steps]
- Open or create a Level Sequence.
- Add an Actor and convert it to a Spawnable.
- Move the playhead to a frame where the Spawned track is set to False.
- In the Sequencer Outliner, right-click the Actor node and try to add any Component.
- Result: The engine crashes immediately.
[Technical Analysis]
The crash is triggered during selection synchronization. In FSequencer::SynchronizeExternalSelectionWithSequencerSelection(), the code attempts to access the Level of the bound object without verifying its validity.
When the actor is despawned, Actor->GetLevel() returns nullptr, causing an access violation in FLevelUtils::IsLevelLocked().
[Suggested Temporary Fix]
We have mitigated the crash by adding null checks for the Level pointer in Sequencer.cpp:
ULevel* ActorLevel = Actor->GetLevel();
if (ActorLevel && !FLevelUtils::IsLevelLocked(ActorLevel))
{
SelectedSequencerActors.Add(Actor);
}
[Requests]
- Is this a known regression in the 5.7 branch?
- Could you provide guidance on a more fundamental fix or confirm if a hotfix is planned?
[Attachment Removed]