Quick answer: Unreal data asset referenced via ConfigCachedIni but missing in cooked build? Soft references in ini files don't trigger cook - add to AssetManager primary asset rules.
Item database loads fine in PIE. Cooked Shipping build returns null at the same path - the asset wasn't cooked.
Register with Asset Manager
In DefaultGame.ini: +PrimaryAssetTypesToScan=(PrimaryAssetType="Item",AssetBaseClass="/Script/Game.ItemData",bHasBlueprintClasses=False,bIsEditorOnly=False,Directories=((Path="/Game/Data/Items"))). The cooker now walks the directory and includes everything.
Or use hard references
If small enough, hold the asset as a hard UPROPERTY. Cooker follows hard refs unconditionally.
Verify with the asset audit
UE Editor: Tools > Audit > Asset Audit > cooked filterLists every asset in the cooked build. If yours isn't here, no amount of runtime reference will load it.
“The cooker doesn't read your config. It reads your dependency graph.”
Use Asset Manager primary asset types as your scaling pattern from day one. Refactoring to it after launch is painful.