Contents
Unreal Engine 5.8 · Focused reference
Validation and debugging
On this page
Validation placement
Use both layers when appropriate:
- Override
IsDataValidon the definition class for invariants that belong to that object. - Derive
UEditorValidatorBaseto validate assets across engine/custom classes or enforce project-wide policy. ImplementCanValidateAssetand ensure everyValidateLoadedAssetpath callsAssetPassesorAssetFails.
Validate through Content Browser actions, Tools > Validate Data, and CI:
UnrealEditor-Cmd.exe Project.uproject -run=DataValidation
The commandlet runs C++ rules by default. Blueprint/Python validation support requires
explicit extension; Python validators must register with UEditorValidatorSubsystem.
Definition checks
At minimum validate:
- ID is present, unique, governed, and consistent with the asset/row when required;
- numeric values are finite and within domain ranges;
- required hard/soft references resolve and have allowed classes;
- mutually exclusive options are not both selected;
- dependent fields are present together;
- rows/reference targets exist;
- no forbidden dependency cycle or editor-only content crosses into runtime;
- Asset Manager ID and bundle/cook expectations are satisfied.
Use errors for content that cannot ship and warnings for suspicious but valid states. Include asset path, field, received value, expected rule, and a repair action in every message.
Failure routing
| Symptom | Check first |
|---|---|
| Primary Asset ID not found | Actual ID, type config, base-class mode, scan path, excluded path |
| Soft pointer is null | Was it loaded, did load finish, did the path redirect, is target cooked? |
| Table lookup fails | Correct table, exact row key, schema/import warnings, reimport result |
| Values do not update | Cached row pointer/copy, stale reimport, wrong source authority |
| Unexpected memory spike | Hard reference chain, broad bundle, synchronous load, retained handle |
| Works in PIE, fails packaged | Cook rule, Primary Asset Label, editor-only class/path, chunk availability |
| Registry query misses assets | Initial scan incomplete, wrong class path/filter, asset not resaved for tags |
Log stable IDs and package paths at load boundaries. Do not “fix” missing data by silently substituting unrelated content unless the product explicitly defines that fallback.
Sources and version
Documentation target: Unreal Engine 5.8. Confirm behavior in your installed engine; no per-procedure test result is implied.
Read this system’s sources and verification notes →
Canonical reference and AI copy
unreal-data-assets-tables/references/validation-debugging.md