- Open Sequencer
- Add objects
- Right-click on one of those objects
- Open the Binding Properties sub-menu in the popup context menu
- Choose Convert Binding To…
- Deselect out of the window without selecting a new binding
- Do this several times, clicking around this window
- The ensure will happen
- Later on, this causes a crash
- Closing the Sequencer tab does not resolve the ensure or crash
Steps to Reproduce
Hello!
This bug has come up several times as I’ve been adding Custom Bindings to my project. The repro is unfortunately not 100%, but I hit it multiple times in a day while testing. I suspect there are some issues with how the UI elements for Binding Properties are set up and are holding on to a reference to the Sequencer.
Ensure:
Error LogOutputDevice Ensure condition failed: SequencerRefCount == 1 [File:D:\p4\tnm-Staging_External\UE5\Engine\Source\Editor\Sequencer\Private\Sequencer.cpp] [Line: 967]
Error LogOutputDevice Multiple persistent shared references detected for Sequencer. There should only be one persistent authoritative reference. Found 3 additional references which will result in FSequencer not being released correctly.
Interestingly, there always seems to be 4 references total when this happens.
Repro:
- Open Sequencer
- Add objects
- Right-click on one of those objects
- Open the Binding Properties sub-menu in the popup context menu
- Choose Convert Binding To…
- Deselect out of the window without selecting a new binding
- Do this several times, clicking around this window
- The ensure will happen
- Later on, this causes a crash
- Closing the Sequencer tab does not resolve the ensure or crash
Any help with this would be appreciated. Thanks!
-Nathaniel Winckler
Hey there,
Apologies for the delay, We fixed some issues around things similar to this, but I’m trying to get a repro for it. Do you have a call stack for the corresponding crash later? Might help us narrow down what the extra references could be.
Dustin
I’ve logged an issue here that you can follow: Unreal Engine Issues and Bug Tracker (UE\-354235)
But unfortunately, I’ve had no luck reproducing the issue, and it’s tough to get you a workaround or bug fix. Since you were able to repro the issue in vanilla, would you be able to share you file project and a video of your workflow to trigger it?
Dustin
Hey Dustin,
No worries! I hit this error very randomly, but it’s all within the context of adding and removing bindings and potentially jumping between SubSequences / Shots.
I just got the ensure, and after making a local change to just a single ensureMsgf, I was able to crash when trying to convert the binding of an object.
Unfortunately, I only have a screenshot because I had the debugger attached. Also note that I have local changes in a few of these files so the line numbers are a bit off from vanilla Unreal. I’ll try to catch this in vanilla Unreal too so you have a clean callstack.
[Image Removed] [Image Removed]
Coincidentally, I just hit this in vanilla 5.6.1 as well! I just submitted a crash report 1 minute ago. The ensure hit (with 11 instances of Sequencer) every frame and this one crashed when closing the Sequencer tab, but did not crash when converting bindings. Below is the callstack and I’ve attached the log.
LoginId:b20c283947c045e51d2b3aa8e693bec3
EpicAccountId:6520317819cc489da4b6332dabed05c3
Assertion failed: IsValid() [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Public\Templates\SharedPointer.h] [Line: 1082]
UnrealEditor_Core!FDebug::CheckVerifyFailedImpl2() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Private\Misc\AssertionMacros.cpp:728]
UnrealEditor_Sequencer!FSequencer::RefreshTree() [D:\build\++UE5\Sync\Engine\Source\Editor\Sequencer\Private\Sequencer.cpp:2788]
UnrealEditor_Sequencer!FSequencer::Tick() [D:\build\++UE5\Sync\Engine\Source\Editor\Sequencer\Private\Sequencer.cpp:1055]
UnrealEditor_UnrealEd!UE::Core::Private::Function::TFunctionRefCaller<`FTickableEditorObject::TickObjects'::`2'::<lambda_1>,void,FTickableObjectBase * __ptr64>::Call() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Public\Templates\Function.h:316]
UnrealEditor_Engine!FTickableObjectBase::SimpleTickObjects() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\Tickable.cpp:112]
UnrealEditor_UnrealEd!UEditorEngine::Tick() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\EditorEngine.cpp:1909]
UnrealEditor_UnrealEd!UUnrealEdEngine::Tick() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\UnrealEdEngine.cpp:533]
UnrealEditor!FEngineLoop::Tick() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:5625]
UnrealEditor!GuardedMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:187]
UnrealEditor!GuardedMainWrapper() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:128]
UnrealEditor!LaunchWindowsStartup() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:282]
UnrealEditor!WinMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:339]
UnrealEditor!__scrt_common_main_seh() [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll
Any ideas?
This is still happening on UE 5.7 as well.