Interface as parameter on call from Blueprint to C++

I ran into something very similar, passing an interface reference paramter to a C++ UFUNCTION in a blueprint class that implements a C++ UINTERFACE from blueprint instead of from its C++ base class ends up with the TScriptInterface having a null InterfacePointer.

I then tried passing it as a UObject instead of an interface ref and casting it to the interface with Cast; this failed too. After trying it that way I found this via google:

The solution in the end using that was:

void AFooBasePlayerController::InteractWith(TScriptInterface<IFooInteractable> const & Interactable)
{

	if (Interactable.GetObject() && Interactable.GetObject()->GetClass()->ImplementsInterface(UFooInteractable::StaticClass()))
	{
		if (IFooInteractable::Execute_IsCurrentlyInteractable(Interactable.GetObject()))
		{
			[...]
		}
	}
}