SerializationOutOfBoundsErrorMessageCaption
SerializationOutOfBoundsErrorMessageCaption
#Overview
name: SerializationOutOfBoundsErrorMessageCaption
The value of this variable can be defined or overridden in .ini config files. 1
.ini config file referencing this setting variable.
It is referenced in 3
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of SerializationOutOfBoundsErrorMessageCaption is to provide a customizable caption for error messages related to serialization out-of-bounds issues in Unreal Engine 5.
This setting variable is primarily used by the Unreal Engine’s core serialization and loading subsystems, specifically within the CoreUObject module. Based on the callsites, it is utilized in the AsyncLoading and LinkerLoad components.
The value of this variable is set in the Engine configuration file (GEngineIni). It is retrieved using the GConfig->GetText() function, which reads the value from the “[Script/Engine.Engine]” section of the configuration file.
SerializationOutOfBoundsErrorMessageCaption interacts with a corresponding error message variable, which is typically retrieved in the same context. Together, they form a complete error dialog presented to the user.
Developers must be aware that this variable is used in critical error handling scenarios, particularly when dealing with corrupted or invalid package files. It’s essential to ensure that the error message and caption are appropriately localized and provide clear, actionable information to the end-user.
Best practices when using this variable include:
- Ensuring the caption is concise yet descriptive.
- Localizing the caption for different languages if the game supports multiple locales.
- Keeping the caption consistent with other error message styles in the engine.
- Regularly reviewing and updating the caption to ensure it remains relevant and helpful as the engine evolves.
- Consider providing additional context or troubleshooting steps in the main error message while keeping the caption brief.
By properly configuring this variable, developers can improve the user experience when critical serialization errors occur, potentially helping users or developers quickly identify and resolve issues related to corrupted or invalid game data.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEngine.ini:312, section: [/Script/Engine.Engine]
- INI Section:
/Script/Engine.Engine
- Raw value:
NSLOCTEXT("","SerializationOutOfBoundsErrorMessageCaption","Serialization Error : Action Needed")
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Runtime/CoreUObject/Private/Serialization/AsyncLoading.cpp:8510
Scope (from outer to inner):
file
function void FAsyncArchive::Serialize
Source code excerpt:
GEngineIni);
GConfig->GetText(TEXT("/Script/Engine.Engine"),
TEXT("SerializationOutOfBoundsErrorMessageCaption"),
ErrorCaption,
GEngineIni);
FMessageDialog::Open(EAppMsgType::Ok, ErrorMessage, ErrorCaption);
}
#endif
// Ensure we aren't reading beyond the end of the file
checkf(CurrentPos + Count <= TotalSizeOrMaxInt64IfNotReady(), TEXT("Seeked past end of file %s (%lld / %lld)"), *PackagePath.GetDebugName(), CurrentPos + Count, TotalSize());
#Loc: <Workspace>/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp:5884
Scope (from outer to inner):
file
function UObject* FLinkerLoad::CreateExport
function UObject* FLinkerLoad::IndexToObject
Source code excerpt:
GEngineIni);
GConfig->GetText(TEXT("/Script/Engine.Engine"),
TEXT("SerializationOutOfBoundsErrorMessageCaption"),
ErrorCaption,
GEngineIni);
UE_ASSET_LOG(LogLinker, Error, PackagePath, TEXT("Invalid export object index=%d. File is most likely corrupted. Please verify your installation."), Index.ToExport());
if (GLog)
{
GLog->Flush();
}
#Loc: <Workspace>/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp:5919
Scope (from outer to inner):
file
function UObject* FLinkerLoad::CreateExport
function UObject* FLinkerLoad::IndexToObject
Source code excerpt:
GEngineIni);
GConfig->GetText(TEXT("/Script/Engine.Engine"),
TEXT("SerializationOutOfBoundsErrorMessageCaption"),
ErrorCaption,
GEngineIni);
UE_ASSET_LOG(LogLinker, Error, PackagePath, TEXT("Invalid import object index=%d. File is most likely corrupted. Please verify your installation."), Index.ToImport());
if (GLog)
{
GLog->Flush();
}