Regression.
Function library saving crashes if it references to a string table entry.
Project repro has been attached for convenience.
Result: Editor Crash.
Expected: Successful Save.
LoginId:677a448d48352201d90930b796056d79
EpicAccountId:74cb1785c0a148f0a87ef74601ae977a
Assertion failed: [Link Removed] [Line: 280] Illegal call to StaticFindObjectFast() while serializing object data or garbage collecting!
>	UE4Editor-CoreUObject-Win64-Debug.dll!StaticFindObjectFast(UClass * ObjectClass, UObject * ObjectPackage, FName ObjectName, bool ExactClass, bool AnyPackage, EObjectFlags ExclusiveFlags, EInternalObjectFlags ExclusiveInternalFlags) Line 280	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!ResolveName(UObject * & InPackage, FString & InOutName, bool Create, bool Throw, unsigned int LoadFlags, FUObjectSerializeContext * InLoadContext) Line 748	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!StaticLoadObjectInternal(UClass * ObjectClass, UObject * InOuter, const wchar_t * InName, const wchar_t * Filename, unsigned int LoadFlags, UPackageMap * Sandbox, bool bAllowObjectReconciliation, FUObjectSerializeContext * InSerializeContext) Line 813	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!StaticLoadObject(UClass * ObjectClass, UObject * InOuter, const wchar_t * InName, const wchar_t * Filename, unsigned int LoadFlags, UPackageMap * Sandbox, bool bAllowObjectReconciliation, FUObjectSerializeContext * InSerializeContext) Line 888	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!FSoftObjectPath::TryLoad(FUObjectSerializeContext * InLoadContext) Line 353	C++
 	UE4Editor-Engine-Win64-Debug.dll!FStringTableEngineBridge::LoadStringTableAssetImpl(const FName InTableId, TFunction<void __cdecl(FName,FName)> InLoadedCallback) Line 196	C++
 	UE4Editor-Core-Win64-Debug.dll!IStringTableEngineBridge::LoadStringTableAsset(const FName InTableId, TFunction<void __cdecl(FName,FName)> InLoadedCallback) Line 192	C++
 	UE4Editor-Core-Win64-Debug.dll!FTextHistory_StringTableEntry::FStringTableReferenceData::ConditionalBeginAssetLoad() Line 2688	C++
 	UE4Editor-Core-Win64-Debug.dll!FTextHistory_StringTableEntry::FStringTableReferenceData::Initialize(unsigned short * InRevisionPtr, FName InTableId, FString && InKey, const EStringTableLoadingPolicy InLoadingPolicy) Line 2593	C++
 	UE4Editor-Core-Win64-Debug.dll!FTextHistory_StringTableEntry::ReadFromBuffer(const wchar_t * Buffer, const wchar_t * TextNamespace, const wchar_t * PackageNamespace, TSharedPtr<FString,1> & OutDisplayString) Line 2535	C++
 	UE4Editor-Core-Win64-Debug.dll!FTextStringHelper::ReadFromBuffer_ComplexText(const wchar_t * Buffer, FText & OutValue, const wchar_t * TextNamespace, const wchar_t * PackageNamespace) Line 1571	C++
 	UE4Editor-Core-Win64-Debug.dll!FTextStringHelper::ReadFromBuffer(const wchar_t * Buffer, FText & OutValue, const wchar_t * TextNamespace, const wchar_t * PackageNamespace, const bool bRequiresQuotes) Line 1605	C++
 	UE4Editor-Engine-Win64-Debug.dll!UEdGraphSchema::DoesDefaultValueMatchAutogenerated(const UEdGraphPin & InPin) Line 505	C++
 	UE4Editor-BlueprintGraph-Win64-Debug.dll!UEdGraphSchema_K2::DoesDefaultValueMatchAutogenerated(const UEdGraphPin & InPin) Line 4841	C++
 	UE4Editor-Engine-Win64-Debug.dll!UEdGraphPin::DoesDefaultValueMatchAutogenerated() Line 690	C++
 	UE4Editor-Engine-Win64-Debug.dll!`anonymous namespace'::GatherGraphNodeForLocalization(const UObject * const Object, FPropertyLocalizationDataGatherer & PropertyLocalizationDataGatherer, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 136	C++
 	UE4Editor-Engine-Win64-Debug.dll!UE4Function_Private::TFunctionRefCaller<void (__cdecl*)(UObject const *,FPropertyLocalizationDataGatherer &,enum EPropertyLocalizationGathererTextFlags),void __cdecl(UObject const *,FPropertyLocalizationDataGatherer &,enum EPropertyLocalizationGathererTextFlags)>::Call(void * Obj, const UObject * & <Params_0>, FPropertyLocalizationDataGatherer & <Params_1>, EPropertyLocalizationGathererTextFlags & <Params_2>) Line 487	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!UE4Function_Private::TFunctionRefBase<UE4Function_Private::TFunctionStorage<0>,void __cdecl(UObject const *,FPropertyLocalizationDataGatherer &,enum EPropertyLocalizationGathererTextFlags)>::operator()(const UObject * <Params_0>, FPropertyLocalizationDataGatherer & <Params_1>, EPropertyLocalizationGathererTextFlags <Params_2>) Line 615	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromObjectWithCallbacks(const UObject * Object, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 95	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromChildTextProperties(const FString & PathToParent, const UProperty * const Property, const void * const ValueAddress, const void * const DefaultValueAddress, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 358	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromChildTextProperties(const FString & PathToParent, const UProperty * const Property, const void * const ValueAddress, const void * const DefaultValueAddress, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 282	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromObjectFields(const FString & PathToParent, const UObject * Object, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 167	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromObject(const UObject * Object, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 114	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromObjectWithCallbacks(const UObject * Object, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 101	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromChildTextProperties(const FString & PathToParent, const UProperty * const Property, const void * const ValueAddress, const void * const DefaultValueAddress, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 358	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromChildTextProperties(const FString & PathToParent, const UProperty * const Property, const void * const ValueAddress, const void * const DefaultValueAddress, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 282	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromObjectFields(const FString & PathToParent, const UObject * Object, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 167	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromObject(const UObject * Object, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 114	C++
 	UE4Editor-Engine-Win64-Debug.dll!`anonymous namespace'::GatherBlueprintForLocalization(const UObject * const Object, FPropertyLocalizationDataGatherer & PropertyLocalizationDataGatherer, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 251	C++
 	UE4Editor-Engine-Win64-Debug.dll!UE4Function_Private::TFunctionRefCaller<void (__cdecl*)(UObject const *,FPropertyLocalizationDataGatherer &,enum EPropertyLocalizationGathererTextFlags),void __cdecl(UObject const *,FPropertyLocalizationDataGatherer &,enum EPropertyLocalizationGathererTextFlags)>::Call(void * Obj, const UObject * & <Params_0>, FPropertyLocalizationDataGatherer & <Params_1>, EPropertyLocalizationGathererTextFlags & <Params_2>) Line 487	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!UE4Function_Private::TFunctionRefBase<UE4Function_Private::TFunctionStorage<0>,void __cdecl(UObject const *,FPropertyLocalizationDataGatherer &,enum EPropertyLocalizationGathererTextFlags)>::operator()(const UObject * <Params_0>, FPropertyLocalizationDataGatherer & <Params_1>, EPropertyLocalizationGathererTextFlags <Params_2>) Line 615	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!FPropertyLocalizationDataGatherer::GatherLocalizationDataFromObjectWithCallbacks(const UObject * Object, const EPropertyLocalizationGathererTextFlags GatherTextFlags) Line 95	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!FPropertyLocalizationDataGatherer::FPropertyLocalizationDataGatherer(TArray<FGatherableTextData,FDefaultAllocator> & InOutGatherableTextDataArray, const UPackage * const InPackage, EPropertyLocalizationGathererResultFlags & OutResultFlags) Line 44	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!UPackage::Save(UPackage * InOuter, UObject * Base, EObjectFlags TopLevelFlags, const wchar_t * Filename, FOutputDevice * Error, FLinkerLoad * Conform, bool bForceByteSwapping, bool bWarnOfLongFilename, unsigned int SaveFlags, const ITargetPlatform * TargetPlatform, const FDateTime & FinalTimeStamp, bool bSlowTask, FArchiveDiffMap * InOutDiffMap) Line 4594	C++
 	UE4Editor-UnrealEd-Win64-Debug.dll!UEditorEngine::Save(UPackage * InOuter, UObject * InBase, EObjectFlags TopLevelFlags, const wchar_t * Filename, FOutputDevice * Error, FLinkerLoad * Conform, bool bForceByteSwapping, bool bWarnOfLongFilename, unsigned int SaveFlags, const ITargetPlatform * TargetPlatform, const FDateTime & FinalTimeStamp, bool bSlowTask, FArchiveDiffMap * InOutDiffMap) Line 4334	C++
 	UE4Editor-UnrealEd-Win64-Debug.dll!UEditorEngine::SavePackage(UPackage * InOuter, UObject * InBase, EObjectFlags TopLevelFlags, const wchar_t * Filename, FOutputDevice * Error, FLinkerLoad * Conform, bool bForceByteSwapping, bool bWarnOfLongFilename, unsigned int SaveFlags, const ITargetPlatform * TargetPlatform, const FDateTime & FinalTimeStamp, bool bSlowTask) Line 4389	C++
 	UE4Editor-UnrealEd-Win64-Debug.dll!UEditorEngine::Exec_Obj(const wchar_t * Str, FOutputDevice & Ar) Line 4473	C++
 	UE4Editor-UnrealEd-Win64-Debug.dll!UEditorEngine::Exec(UWorld * InWorld, const wchar_t * Stream, FOutputDevice & Ar) Line 5550	C++
 	UE4Editor-UnrealEd-Win64-Debug.dll!UUnrealEdEngine::Exec(UWorld * InWorld, const wchar_t * Stream, FOutputDevice & Ar) Line 691	C++
 	UE4Editor-UnrealEd-Win64-Debug.dll!InternalSavePackage(UPackage * PackageToSave, bool bUseDialog, bool & bOutPackageLocallyWritable, FOutputDevice & SaveOutput) Line 2958	C++
 	UE4Editor-UnrealEd-Win64-Debug.dll!InternalPromptForCheckoutAndSave(const TArray<UPackage *,FDefaultAllocator> & FinalSaveList, bool bUseDialog, TArray<UPackage *,FDefaultAllocator> & OutFailedPackages) Line 3464	C++
 	UE4Editor-UnrealEd-Win64-Debug.dll!FEditorFileUtils::PromptForCheckoutAndSave(const TArray<UPackage *,FDefaultAllocator> & InPackages, bool bCheckDirty, bool bPromptToSave, TArray<UPackage *,FDefaultAllocator> * OutFailedPackages, bool bAlreadyCheckedOut, bool bCanBeDeclined) Line 3729	C++
 	UE4Editor-UnrealEd-Win64-Debug.dll!FAssetEditorToolkit::SaveAsset_Execute() Line 531	C++
 	UE4Editor-UnrealEd-Win64-Debug.dll!TMemberFunctionCaller<FAssetEditorToolkit,void (__cdecl FAssetEditorToolkit::*)(void)>::operator()<>() Line 157	C++
 	UE4Editor-UnrealEd-Win64-Debug.dll!TBaseSPMethodDelegateInstance<0,FAssetEditorToolkit,0,TTypeWrapper<void> __cdecl(void)>::Execute() Line 279	C++
 	UE4Editor-UnrealEd-Win64-Debug.dll!TBaseSPMethodDelegateInstance<0,FAssetEditorToolkit,0,void __cdecl(void)>::ExecuteIfSafe() Line 357	C++
 	UE4Editor-Slate-Win64-Debug.dll!TBaseDelegate<void>::ExecuteIfBound() Line 648	C++
 	UE4Editor-Slate-Win64-Debug.dll!FUICommandList::ExecuteAction(const TSharedRef<FUICommandInfo const ,0> InUICommandInfo) Line 100	C++
 	UE4Editor-Slate-Win64-Debug.dll!SToolBarButtonBlock::OnClicked() Line 300	C++
 	UE4Editor-Slate-Win64-Debug.dll!TMemberFunctionCaller<SToolBarButtonBlock,FReply (__cdecl SToolBarButtonBlock::*)(void)>::operator()<>() Line 156	C++
 	UE4Editor-Slate-Win64-Debug.dll!TBaseSPMethodDelegateInstance<0,SToolBarButtonBlock,0,FReply __cdecl(void)>::Execute() Line 279	C++
 	UE4Editor-Slate-Win64-Debug.dll!SButton::OnMouseButtonUp(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 294	C++
 	UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::RoutePointerUpEvent::__l8::<lambda>(const FArrangedWidget & TargetWidget, const FPointerEvent & Event) Line 5611	C++
 	UE4Editor-Slate-Win64-Debug.dll!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,FReply <lambda>(const FArrangedWidget &, const FPointerEvent &) >(FSlateApplication * ThisApplication, FEventRouter::FToLeafmostPolicy RoutingPolicy, FPointerEvent EventCopy, const FSlateApplication::RoutePointerUpEvent::__l8::FReply <lambda>(const FArrangedWidget &, const FPointerEvent &) & Lambda) Line 271	C++
 	UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::RoutePointerUpEvent(const FWidgetPath & WidgetsUnderPointer, const FPointerEvent & PointerEvent) Line 5597	C++
 	UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::ProcessMouseButtonUpEvent(const FPointerEvent & MouseEvent) Line 6202	C++
 	UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::OnMouseUp(const EMouseButtons::Type Button, const FVector2D CursorPos) Line 6175	C++
 	UE4Editor-ApplicationCore-Win64-Debug.dll!FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 1843	C++
 	UE4Editor-ApplicationCore-Win64-Debug.dll!FWindowsApplication::DeferMessage(TSharedPtr<FWindowsWindow,0> & NativeWindow, HWND__ * InHWnd, unsigned int InMessage, unsigned __int64 InWParam, __int64 InLParam, int MouseX, int MouseY, unsigned int RawInputFlags) Line 2295	C++
 	UE4Editor-ApplicationCore-Win64-Debug.dll!FWindowsApplication::ProcessMessage(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 943	C++
 	UE4Editor-ApplicationCore-Win64-Debug.dll!FWindowsApplication::AppWndProc(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 772	C++
 	user32.dll!UserCallWinProcCheckWow()	Unknown
 	user32.dll!DispatchMessageWorker()	Unknown
 	UE4Editor-ApplicationCore-Win64-Debug.dll!WinPumpMessages() Line 108	C++
 	UE4Editor-ApplicationCore-Win64-Debug.dll!FWindowsPlatformApplicationMisc::PumpMessages(bool bFromMainLoop) Line 133	C++
 	UE4Editor-Win64-Debug.exe!FEngineLoop::Tick() Line 3955	C++
 	UE4Editor-Win64-Debug.exe!EngineTick() Line 63	C++
 	UE4Editor-Win64-Debug.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 176	C++
 	UE4Editor-Win64-Debug.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 261	C++
 	[Inline Frame] UE4Editor-Win64-Debug.exe!invoke_main() Line 102	C++
 	UE4Editor-Win64-Debug.exe!__scrt_common_main_seh() Line 288	C++
 	kernel32.dll!BaseThreadInitThunk()	Unknown
 	ntdll.dll!RtlUserThreadStart()	Unknown
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-72314 in the post.
| 1 | 
| Component | UE - Editor - UI Systems - Localization | 
|---|---|
| Affects Versions | 4.22 | 
| Target Fix | 4.22.1 | 
| Fix Commit | 5745720 | 
|---|
| Created | Apr 4, 2019 | 
|---|---|
| Resolved | Apr 4, 2019 | 
| Updated | Apr 17, 2019 |