Context:
In PCG, the Attribute Remove Duplicates node can be used to remove duplicate attributes from an array.
Problem:
The licensee has observed that using the Attribute Remove Duplicates node on partitioned data in a PCG graph results in the engine crashing if one of those sets of data is empty.
The licensee has observed this issue while doing some partitioning based on mesh path and then removing duplicates, with it crashing in a similar fashion in the exact same place.
When reproducing this issue, the editor will crash with the following error:
Assertion failed: (Index >= 0) & (Index < ArrayNum) File:\Engine\Source\Runtime\Core\Public\Containers\Array.h [Line: 1067]
Array index out of bounds: 0 into an array of size 0
A repro project has been provided.
1.) Open the repro project.
2.) Open the PCG graph named ErrorPCG.
3.) Click on the Remove Duplicates Node and try to debug its data.
Observe: The editor will crash.
Expected: The editor should not crash.
>[Inline Frame] UnrealEditor-PCG.dll!TArray<int,TSizedDefaultAllocator<32>>::RangeCheck(int) Line 1067 C++
[Inline Frame] UnrealEditor-PCG.dll!TArray<int,TSizedDefaultAllocator<32>>::operator[](int) Line 1145 C++
UnrealEditor-PCG.dll!PCGMetadataPartitionCommon::RemoveDuplicatesPoint(const UPCGBasePointData * InData, const TArrayView<FPCGAttributePropertySelector const ,int> & InSelectorArrayView, FPCGContext * InOptionalContext, bool bSilenceMissingAttributeErrors) Line 469 C++
UnrealEditor-PCG.dll!PCGMetadataPartitionCommon::RemoveDuplicates(const UPCGData * InData, const TArrayView<FPCGAttributePropertySelector const ,int> & InSelectorArrayView, FPCGContext * InOptionalContext, bool bSilenceMissingAttributeErrors) Line 655 C++
UnrealEditor-PCG.dll!FPCGAttributeRemoveDuplicatesElement::ExecuteInternal(FPCGContext * Context) Line 93 C++
UnrealEditor-PCG.dll!IPCGElement::Execute(FPCGContext * Context) Line 217 C++
UnrealEditor-PCG.dll!FPCGGraphExecutor::ExecuteScheduling::__l119::<lambda_2>::operator()() Line 1739 C++
[Inline Frame] UnrealEditor-PCG.dll!Invoke(FPCGGraphExecutor::ExecuteScheduling::__l119::<lambda_2> &) Line 47 C++
UnrealEditor-PCG.dll!UE::Tasks::Private::TExecutableTaskBase<`FPCGGraphExecutor::ExecuteScheduling'::`119'::<lambda_2>,bool,void>::ExecuteTask() Line 875 C++
UnrealEditor-PCG.dll!UE::Tasks::Private::FTaskBase::TryExecuteTask() Line 527 C++
[Inline Frame] UnrealEditor-PCG.dll!UE::Tasks::Private::FTaskBase::Init::__l2::<lambda_1>::operator()() Line 184 C++
[Inline Frame] UnrealEditor-PCG.dll!LowLevelTasks::FTask::Init::__l13::<lambda_1>::operator()(const bool) Line 499 C++
[Inline Frame] UnrealEditor-PCG.dll!Invoke(LowLevelTasks::FTask::Init::__l13::<lambda_1> &) Line 47 C++
[Inline Frame] UnrealEditor-PCG.dll!LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<`LowLevelTasks::FTask::Init<`UE::Tasks::Private::FTaskBase::Init'::`2'::<lambda_1>>'::`13'::<lambda_1>,0>::Call(void *) Line 162 C++
UnrealEditor-PCG.dll!LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<`LowLevelTasks::FTask::Init<`UE::Tasks::Private::FTaskBase::Init'::`2'::<lambda_1>>'::`13'::<lambda_1>,0>::CallAndMove(LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48> & Destination, void * InlineData, unsigned int DestInlineSize, bool <Params_0>) Line 171 C++
[Inline Frame] UnrealEditor-Core.dll!LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::CallAndMove(LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48> &) Line 309 C++
UnrealEditor-Core.dll!LowLevelTasks::FTask::ExecuteTask() Line 627 C++
UnrealEditor-Core.dll!LowLevelTasks::FScheduler::ExecuteTask(LowLevelTasks::FTask * InTask) Line 365 C++
[Inline Frame] UnrealEditor-Core.dll!LowLevelTasks::FScheduler::TryExecuteTaskFrom(LowLevelTasks::Private::FWaitEvent *) Line 665 C++
UnrealEditor-Core.dll!LowLevelTasks::FScheduler::WorkerLoop(LowLevelTasks::Private::FWaitEvent * WorkerEvent, LowLevelTasks::Private::TLocalQueueRegistry<1024,1024>::TLocalQueue * WorkerLocalQueue, unsigned int WaitCycles, bool bPermitBackgroundWork) Line 724 C++
[Inline Frame] UnrealEditor-Core.dll!LowLevelTasks::FScheduler::WorkerMain(LowLevelTasks::Private::FWaitEvent * WorkerEvent, LowLevelTasks::Private::TLocalQueueRegistry<1024,1024>::TLocalQueue * WorkerLocalQueue, unsigned int WaitCycles, bool bPermitBackgroundWork) Line 783 C++
UnrealEditor-Core.dll!LowLevelTasks::FScheduler::CreateWorker::__l2::<lambda>() Line 188 C++
[Inline Frame] UnrealEditor-Core.dll!UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::TFunctionStorage<1>,void __cdecl(void)>::operator()() Line 471 C++
UnrealEditor-Core.dll!FThreadImpl::Run() Line 69 C++
UnrealEditor-Core.dll!FRunnableThreadWin::Run() Line 159 C++
UnrealEditor-Core.dll!FRunnableThreadWin::GuardedRun() Line 71 C++
kernel32.dll!00007ffdd7b4e8d7() Unknown
ntdll.dll!00007ffdd8f7c34c() Unknown
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-302152 in the post.
0 |
Component | UE - World Creation - Procedural Tools - PCG Graph |
---|---|
Affects Versions | 5.6 |
Created | Jul 3, 2025 |
---|---|
Updated | Jul 16, 2025 |