TSubclassOf IInterface type argument error

I’m having a weird error here that I can’t figure out. I’m trying to pass a TSubclassOf type argument to a function, but I’m getting weird errors.

Header:

UFUNCTION(BlueprintCallable, Server, WithValidation, Reliable, Category = "Test")
void SpawnBlockServer(AActor* gridActor, FTransform transform, TSubclassOf<IBuildingBlock> blockClass);

Cpp:

bool ATestCharacter::SpawnBlockServer_Validate(AActor* gridActor, FTransform transform, TSubclassOf<IBuildingBlock> blockClass) { return true; };
void ATestCharacter::SpawnBlockServer_Implementation(AActor* gridActor, FTransform transform, TSubclassOf<IBuildingBlock> blockClass) {...}

Compiler log:

Error x:\games\epic games\4.13\engine\source\runtime\coreuobject\public\uobject\UObject.h(745) : note: see declaration of 'UObject::FindFunctionChecked'
Error X:\Unreal projects\Project 4.13\Source\Project\Characters\TestCharacter.cpp(125) : error C2511: 'bool ATestCharacter::SpawnBlockServer_Validate(AActor *,FTransform,TSubclassOf<IBuildingBlock>)': overloaded member function not found in 'ATestCharacter'
Error x:\unreal projects\project 4.13\source\project\characters\TestCharacter.h(15) : note: see declaration of 'ATestCharacter'
Error X:\Unreal projects\Project 4.13\Source\Project\Characters\TestCharacter.cpp(127) : error C2511: 'void ATestCharacter::SpawnBlockServer_Implementation(AActor *,FTransform,TSubclassOf<IBuildingBlock>)': overloaded member function not found in 'ATestCharacter'
Error x:\unreal projects\project 4.13\source\project\characters\TestCharacter.h(15) : note: see declaration of 'ATestCharacter'
Info BaseGameMode.cpp
Error X:\Unreal projects\Project 4.13\Intermediate\Build\Win64\UE4Editor\Inc\Project\Project.generated.cpp(473) : error C2511: 'void ATestCharacter::SpawnBlockServer(AActor *,FTransform,TSubclassOf<UBuildingBlock>)': overloaded member function not found in 'ATestCharacter'
Error X:\Unreal projects\Project 4.13\Source\Project\Characters/TestCharacter.h(15) : note: see declaration of 'ATestCharacter'
Error X:\Unreal projects\Project 4.13\Intermediate\Build\Win64\UE4Editor\Inc\Project\Project.generated.cpp(478) : error C2352: 'UObject::FindFunctionChecked': illegal call of non-static member function

It doesn’t seem to find the function for some reason, but it works fine if I replace IBuildingBlock with UBuildingBlock like this:
Header:

UFUNCTION(BlueprintCallable, Server, WithValidation, Reliable, Category = "Test")
void SpawnBlockServer(AActor* gridActor, FTransform transform, TSubclassOf<UBuildingBlock> blockClass);

Cpp:

bool ATestCharacter::SpawnBlockServer_Validate(AActor* gridActor, FTransform transform, TSubclassOf<UBuildingBlock> blockClass) { return true; };
void ATestCharacter::SpawnBlockServer_Implementation(AActor* gridActor, FTransform transform, TSubclassOf<UBuildingBlock> blockClass) {...}

Does anyone know what I’m doing wrong?

Any ideas?