Description

The Update Persistent Audio module has a dependency on a Play Persistent Audio module. When there are two modules in different overview nodes, the automatic fix up can put the Play Persistent Audio module in a different overview node, then the fix-up for moving the Update Persistent Audio will try to move the module to the different script stage and crash the editor.

Steps to Reproduce
  1. Create or open a Niagara system with one emitter
  2. Add an Update Persistent Audio module to the System Update script
  3. Add an Update Persistent Audio module to the Particle Update script in the emitter
  4. Both should indicate the following error: "The following pre-dependency is not met: PlayPersistentAudio"
  5. Click "Fix issue" in the Particle Update script.
  6. The first click creates a Play Persistent Audio module correctly.
  7. Click "Fix issue" again in the Particle Update script

RESULT

The Editor crashes

Callstack

[Inlined] TSizedHeapAllocator<32,FMemory>::ForAnyElementType::{ctor}() ContainerAllocationPolicies.h:514
[Inlined] TSizedHeapAllocator<32,FMemory>::ForElementType<UNiagaraNode *>::{ctor}() ContainerAllocationPolicies.h:659
[Inlined] TArray<UNiagaraNode *,TSizedDefaultAllocator<32> >::{ctor}() Array.h:409
GetAllNodesForModule(UNiagaraNodeFunctionCall &,TArray<UNiagaraNode *,TSizedDefaultAllocator<32> > &) NiagaraStackGraphUtilities.cpp:2725
FNiagaraStackGraphUtilities::GetModuleIsEnabled(UNiagaraNodeFunctionCall &) NiagaraStackGraphUtilities.cpp:2732
[Inlined] UNiagaraStackModuleItem::RefreshIsEnabled() NiagaraStackModuleItem.cpp:1232
UNiagaraStackModuleItem::RefreshChildrenInternal(const TArray<UNiagaraStackEntry *,TSizedDefaultAllocator<32> > &,TArray<UNiagaraStackEntry *,TSizedDefaultAllocator<32> > &,TArray<UNiagaraStackEntry::FStackIssue,TSizedDefaultAllocator<32> > &) NiagaraStackModuleItem.cpp:217
UNiagaraStackEntry::RefreshChildren() NiagaraStackEntry.cpp:743
[Inlined] Invoke(void (UNiagaraStackEntry::*)(),UNiagaraStackEntry *&) Invoke.h:66
[Inlined] UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int> >::ApplyAfter(void (UNiagaraStackEntry::*&)(),UNiagaraStackEntry *&) Tuple.h:311
TBaseUObjectMethodDelegateInstance<0,UNiagaraStackEntry,void __cdecl(void),FDefaultDelegateUserPolicy>::ExecuteIfSafe() DelegateInstancesImpl.h:665
[Inlined] TMulticastDelegateBase<FDefaultDelegateUserPolicy>::Broadcast() MulticastDelegateBase.h:254
TMulticastDelegate<void __cdecl(void),FDefaultDelegateUserPolicy>::Broadcast() DelegateSignatureImpl.inl:956
[Inlined] Invoke(void (UNiagaraStackErrorItem::*)(),UNiagaraStackErrorItem *&) Invoke.h:66
[Inlined] UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int> >::ApplyAfter(void (UNiagaraStackErrorItem::*&)(),UNiagaraStackErrorItem *&) Tuple.h:311
TBaseUObjectMethodDelegateInstance<0,UNiagaraStackErrorItem,void __cdecl(void),FDefaultDelegateUserPolicy>::ExecuteIfSafe() DelegateInstancesImpl.h:665
[Inlined] TMulticastDelegateBase<FDefaultDelegateUserPolicy>::Broadcast() MulticastDelegateBase.h:254
TMulticastDelegate<void __cdecl(void),FDefaultDelegateUserPolicy>::Broadcast() DelegateSignatureImpl.inl:956
UNiagaraStackErrorItemFix::OnTryFixError() NiagaraStackErrorItem.cpp:167
[Inlined] Invoke(FReply (UNiagaraStackErrorItemFix::*)(),UNiagaraStackErrorItemFix *&) Invoke.h:66
[Inlined] UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int> >::ApplyAfter(FReply (UNiagaraStackErrorItemFix::*&)(),UNiagaraStackErrorItemFix *&) Tuple.h:311
TBaseUObjectMethodDelegateInstance<0,UNiagaraStackErrorItemFix,FReply __cdecl(void),FDefaultDelegateUserPolicy>::Execute() DelegateInstancesImpl.h:649
TDelegate<FReply __cdecl(void),FDefaultDelegateUserPolicy>::Execute() DelegateSignatureImpl.inl:549
SButton::ExecuteOnClick() SButton.cpp:465
SButton::OnMouseButtonUp(const FGeometry &,const FPointerEvent &) SButton.cpp:390
[Inlined] FSlateApplication::RoutePointerUpEvent::__l8::<lambda_3>::operator()(const FArrangedWidget &,const FPointerEvent &) SlateApplication.cpp:5220
FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,`FSlateApplication::RoutePointerUpEvent'::`8'::<lambda_3> >(FSlateApplication *,FToLeafmostPolicy,FPointerEvent,const <lambda_3> &,ESlateDebuggingInputEvent) SlateApplication.cpp:442
FSlateApplication::RoutePointerUpEvent(const FWidgetPath &,const FPointerEvent &) SlateApplication.cpp:5206
FSlateApplication::ProcessMouseButtonUpEvent(const FPointerEvent &) SlateApplication.cpp:5775
FSlateApplication::OnMouseUp(Type,TVector2<double>) SlateApplication.cpp:5740
FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage &) WindowsApplication.cpp:2231
FWindowsApplication::DeferMessage(TSharedPtr<FWindowsWindow,1> &,HWND__ *,unsigned int,unsigned long long,long long,int,int,unsigned int) WindowsApplication.cpp:2738
FWindowsApplication::ProcessMessage(HWND__ *,unsigned int,unsigned long long,long long) WindowsApplication.cpp:1099
[Inlined] WindowsApplication_WndProc(HWND__ *,unsigned int,unsigned long long,long long) WindowsApplication.cpp:931
FWindowsApplication::AppWndProc(HWND__ *,unsigned int,unsigned long long,long long) WindowsApplication.cpp:936
<unknown> 0x00007fff3973e858
<unknown> 0x00007fff3973e299
[Inlined] WinPumpMessages() WindowsPlatformApplicationMisc.cpp:119
FWindowsPlatformApplicationMisc::PumpMessages(bool) WindowsPlatformApplicationMisc.cpp:148
FEngineLoop::Tick() LaunchEngineLoop.cpp:5743
[Inlined] EngineTick() Launch.cpp:61
GuardedMain(const wchar_t *) Launch.cpp:190
LaunchWindowsStartup(HINSTANCE__ *,HINSTANCE__ *,char *,int,const wchar_t *) LaunchWindows.cpp:247
WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) LaunchWindows.cpp:298
[Inlined] invoke_main() 0x00007ff664569d26
__scrt_common_main_seh() 0x00007ff664569d05
<unknown> 0x00007fff3b4d7344
<unknown> 0x00007fff3b6426b1

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-204290 in the post.

2
Login to Vote

Fixed
ComponentUE - Niagara
Affects Versions5.3
Target Fix5.4
Fix Commit32068350
Main Commit32068457
Release Commit32497137
CreatedJan 18, 2024
ResolvedMar 13, 2024
UpdatedApr 3, 2024
View Jira Issue