Quick answer: Verify RowName case. DataTable assigned. Struct row type matches DataTable's struct.
DataTableRowHandle → Get Data Table Row returns null. RowName had typo or wrong case.
The Fix
BP:
GetDataTableRow(DataTable, RowName)
Branch: IsValid + Cast successful
True → Use OutRow
False → Print "row not found: " & RowName.ToString()
// Defensive: print available rows in BeginPlay
for (auto& row : DataTable->GetRowNames()) {
UE_LOG(LogTemp, Display, TEXT("Row: %s"), *row.ToString());
}
Logging row names + the requested name reveals the mismatch immediately.
Verifying
RowName matches: lookup succeeds. Mismatch: clear log message identifies the typo.
“Verify name. Lookup hits.”
Related Issues
For Data Asset bulk edit, see bulk edit. For BP Add Unique struct, see add unique.
RowName matches. Lookup lands.