Packaged-build SetCurrentCulture to zh-Hans-CN crash when OnlineSubsystem plugin enabled

This bug both happen in 4.16 & 4.17 I tested,

And I fixed the crash by doing following step:
Copy all files in
UE_4.17\Engine\Plugins\Runtime\HTTPChunkInstaller\Content\Localization\HTTPChunkInstaller\en
to replace files in
UE_4.17\Engine\Plugins\Runtime\HTTPChunkInstaller\Content\Localization\HTTPChunkInstaller\zh-Hans
Copy all files in
UE_4.17\Engine\Plugins\Online\OnlineSubsystem\Content\Localization\OnlineSubsystem\en
to replace files in
UE_4.17\Engine\Plugins\Online\OnlineSubsystem\Content\Localization\OnlineSubsystem\zh-Hans
Copy all files in
UE_4.17\Engine\Plugins\Online\OnlineSubsystemUtils\Content\Localization\OnlineSubsystemUtils\en
to replace files in
UE_4.17\Engine\Plugins\Online\OnlineSubsystemUtils\Content\Localization\OnlineSubsystemUtils\zh-Hans

I think there should have some problem in those plugin’s zh-Hans .locres.

====================================================

Here is c++ call stack when I try to trace the crash in 4.16:

>	vcruntime140.dll!memcpy() Line 135	Unknown
 	MyProject-Win64-DebugGame.exe!FSignedArchiveReader::Serialize(void * Data, __int64 Length) Line 411	C++
 	MyProject-Win64-DebugGame.exe!FPakReaderPolicy<FPakSimpleEncryption>::Serialize(__int64 DesiredPosition, void * V, __int64 Length) Line 725	C++
 	xxxxx-Win64-DebugGame.exe!FPakFileHandle<FPakReaderPolicy<FPakSimpleEncryption> >::Read(unsigned char * Destination, __int64 BytesToRead) Line 824	C++
 	MyProject-Win64-DebugGame.exe!FArchiveFileReaderGeneric::ReadLowLevel(unsigned char * Dest, __int64 CountToRead, __int64 & OutBytesRead) Line 642	C++
 	MyProject-Win64-DebugGame.exe!FArchiveFileReaderGeneric::InternalPrecache(__int64 PrecacheOffset, __int64 PrecacheSize) Line 690	C++
 	MyProject-Win64-DebugGame.exe!FArchiveFileReaderGeneric::Serialize(void * V, __int64 Length) Line 730	C++
 	MyProject-Win64-DebugGame.exe!operator<<(FArchive & Ar, TArray<FString,FDefaultAllocator> & A) Line 1109	C++
 	MyProject-Win64-DebugGame.exe!FTextLocalizationResource::LoadFromArchive(FArchive & Archive, const FString & LocalizationResourceIdentifier) Line 149	C++
 	MyProject-Win64-DebugGame.exe!FTextLocalizationResource::LoadFromFile(const FString & FilePath) Line 108	C++
 	MyProject-Win64-DebugGame.exe!FTextLocalizationResource::LoadFromDirectory(const FString & DirectoryPath) Line 94	C++
 	MyProject-Win64-DebugGame.exe!FTextLocalizationManager::LoadLocalizationResourcesForCulture(const FString & CultureName, const bool ShouldLoadEditor, const bool ShouldLoadGame) Line 763	C++
 	MyProject-Win64-DebugGame.exe!FTextLocalizationManager::OnCultureChanged() Line 578	C++
 	MyProject-Win64-DebugGame.exe!TBaseRawMethodDelegateInstance<0,FTextLocalizationManager,void __cdecl(void)>::ExecuteIfSafe() Line 648	C++
 	MyProject-Win64-DebugGame.exe!TBaseMulticastDelegate<void>::Broadcast() Line 937	C++
 	MyProject-Win64-DebugGame.exe!FInternationalization::SetCurrentCulture(const FString & InCultureName) Line 70	C++

In the function
FTextLocalizationResource::LoadFromArchive(FArchive& Archive, const FString& LocalizationResourceIdentifier)
Archive = {Filename=L"D:/MyProject/WindowsNoEditor/Engine/Plugins/Online/HTTPChunkInstaller/Content/Localization/HTTPChunkInstaller/zh-Hans/HTTPChunkInstaller.locres" …}

Hey there, Not sure how you went about this, but I did notice today that the ini file for that plugin had an incorrect path in it.

See https://answers.unrealengine.com/questions/720538/httpchunkinstaller-localisation-ini-points-to-wron.html

It was pointing to its old folder location (DestinationPath=Plugins/Online/HTTPChunkInstaller/Content/Localization/HTTPChunkInstaller instead of where the data actually is DestinationPath=Plugins/Runtime/HTTPChunkInstaller/Content/Localization/HTTPChunkInstaller)

I am not sure if this will solve your issue, but maybe fixing those paths will help you?