Reinterpret_cast failing for FindRow<>()

Hi there,

I’ve just encountered an issue with FDataTableRowHandle.GetRow<>().
When trying to get a row that derives from another row the reinterpret_cast fails, but only if no property is set on the row struct that we cast from.

To be more specific here is a test setup:

USTRUCT(BlueprintType)
struct FSomeBaseRow : public FTableRowBase
{
	GENERATED_BODY();
	
	UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Impact")
	UMaterial* defaultDecal;
	
};

USTRUCT(BlueprintType)
struct FSomeDerivedRow : public FSomeBaseRow 
{
	GENERATED_BODY();
	
	UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Impact")
	USoundCue* defaultSound;


	/** WORKAROUND! Adding this fake property fixes this issue */
        uint8 someFakeProperty = 0;
};

Now when you have a FDataTableRowHandle that points to a FSomeDerivedRow it will only resolve the row when using GetRow<>() if:
a) Some asset is assigned to defaultSound. If it’s a nullptr the GetRow will fail.
b) someFakeProperty is added and initialized

If not using one of the workarounds the GetRow will fail on FindRow<>()

return reinterpret_cast<T*>(RowData);

Do you have any suggestions why this might be happening and how to fix it properly?

Regards,