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.