This is a regression, the crash seem to have been introduced by CL 40129784 on ue5-main and persists in latest.
Function UDataTable::RemoveRow(FName RowName) uses macro DATATABLE_CHANGE_SCOPE_SINGLE_ROW to call HandleDataTableChanged() after the modification. This, attempts to access the table row using "RowMap[ChangedRowName]", which is a checked accessor. It succeeds after adding a row, but crashes in the removal operation since the row has just been deleted.
Blueprint Utility repro
General Repro
BP Utility stack:
[Inline Frame] UnrealEditor-Engine.dll!TMapBase<FName,unsigned char *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<FName,unsigned char *,0>>::FindChecked(const FName &) Line 741 [Inline Frame] UnrealEditor-Engine.dll!TMap<FName,unsigned char *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<FName,unsigned char *,0>>::operator[](const FName &) Line 1483 UnrealEditor-Engine.dll!UDataTable::HandleDataTableChanged(FName ChangedRowName) Line 246 UnrealEditor-Engine.dll!UDataTable::FScopedDataTableChange::~FScopedDataTableChange() Line 77 UnrealEditor-Engine.dll!UDataTable::RemoveRow(FName RowName) Line 510 [Inline Frame] UnrealEditor-Engine.dll!UDataTableFunctionLibrary::RemoveDataTableRow(UDataTable * DataTable, const FName &) Line 449 UnrealEditor-Engine.dll!UDataTableFunctionLibrary::execRemoveDataTableRow(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 1305 UnrealEditor-CoreUObject.dll!UObject::execCallMathFunction(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 1107 [Inline Frame] UnrealEditor-CoreUObject.dll!FFrame::Step(UObject *) Line 510 UnrealEditor-CoreUObject.dll!ProcessLocalScriptFunction(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 1243 UnrealEditor-CoreUObject.dll!UObject::ProcessInternal(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 1372 UnrealEditor-CoreUObject.dll!UFunction::Invoke(UObject * Obj, FFrame & Stack, void * const Z_Param__Result) Line 7483 UnrealEditor-CoreUObject.dll!UObject::ProcessEvent(UFunction * Function, void * Parms) Line 2212 UnrealEditor-Blutility.dll!FBlutilityMenuExtensions::CreateBlutilityActionsMenu::__l2::<lambda_1>::()::__l6::<lambda_1>::operator()() Line 1106
Python stack
[Inline Frame] UnrealEditor-Engine.dll!TMapBase<FName,unsigned char *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<FName,unsigned char *,0>>::FindChecked(const FName &) Line 729 [Inline Frame] UnrealEditor-Engine.dll!TMap<FName,unsigned char *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<FName,unsigned char *,0>>::operator[](const FName &) Line 1471 UnrealEditor-Engine.dll!UDataTable::HandleDataTableChanged(FName ChangedRowName) Line 240 UnrealEditor-Engine.dll!UDataTable::FScopedDataTableChange::~FScopedDataTableChange() Line 77 UnrealEditor-Engine.dll!UDataTable::RemoveRow(FName RowName) Line 508 [Inline Frame] UnrealEditor-Engine.dll!UDataTableFunctionLibrary::RemoveDataTableRow(UDataTable * DataTable, const FName &) Line 449 UnrealEditor-Engine.dll!UDataTableFunctionLibrary::execRemoveDataTableRow(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 1323 UnrealEditor-CoreUObject.dll!UFunction::Invoke(UObject * Obj, FFrame & Stack, void * const Z_Param__Result) Line 7453 UnrealEditor-CoreUObject.dll!UObject::ProcessEvent(UFunction * Function, void * Parms) Line 2211 UnrealEditor-PythonScriptPlugin.dll!PyUtil::InvokeFunctionCall(UObject * InObj, const UFunction * InFunc, void * InBaseParamsAddr, const wchar_t * InErrorCtxt) Line 575 UnrealEditor-PythonScriptPlugin.dll!FPyWrapperObject::CallFunction_Impl(UObject * InObj, _object * InArgs, _object * InKwds, const PyGenUtil::FGeneratedWrappedFunction & InFuncDef, const char * InPythonFuncName, const wchar_t * InErrorCtxt) Line 314 [Inline Frame] UnrealEditor-PythonScriptPlugin.dll!FPyWrapperObject::CallFunction(_typeobject * InPythonFuncName, _object *) Line 218 UnrealEditor-PythonScriptPlugin.dll!FPyWrapperObject::CallClassMethodWithArgs_Impl(_typeobject * InType, _object * InArgs, _object * InKwds, void * InClosure) Line 333 UnrealEditor-PythonScriptPlugin.dll!FPyMethodWithClosureDef::Call(FPyMethodWithClosureDef * InDef, _object * InSelf, _object * InArgs, _object * InKwds) Line 152 [External Code] UnrealEditor-PythonScriptPlugin.dll!FPythonScriptPlugin::EvalString(const wchar_t * InStr, const wchar_t * InContext, const int InMode, _object * InGlobalDict, _object * InLocalDict) Line 1670 [Inline Frame] UnrealEditor-PythonScriptPlugin.dll!FPythonScriptPlugin::EvalString(const wchar_t *) Line 1654 UnrealEditor-PythonScriptPlugin.dll!FPythonScriptPlugin::RunString(FPythonCommandEx & InOutPythonCommand) Line 1703 [Inline Frame] UnrealEditor-PythonScriptPlugin.dll!FPythonScriptPlugin::ExecPythonCommandEx(FPythonCommandEx &) Line 858 UnrealEditor-PythonScriptPlugin.dll!FPythonScriptPlugin::ExecPythonCommand(const wchar_t * InPythonCommand) Line 749 UnrealEditor-PythonScriptPlugin.dll!FPythonCommandExecutor::Exec(const wchar_t * Input) Line 350
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-296335 in the post.
0 |
Component | UE - CoreTech |
---|---|
Affects Versions | 5.6 |
Target Fix | 5.7 |
Created | Jun 13, 2025 |
---|---|
Updated | Jul 24, 2025 |