InputKeySelector navigation rules do not work

While using InputKeySelector, I wanted to use a custom navigation method, but found that it would never trigger my navigation function.

Setting regular buttons to this navigation rule works properly, however with InputKeySelectors, it never calls the bound function.

Instead it seems to use the “Escape” navigation method. In fact, setting the navigation rule to any other navigation method (e.g. “Stop” or “Explicit”) seems to result in the “Escape” functionality

I’ve found through debugging that for SInputKeySelector, when calling the parent (SWidget) “OnNavigation” method, when attempting to retrieve the FNavigationMetaData, it returns a nullptr, forcing it to default to “FNavigationReply::Escape”

FNavigationReply SWidget::OnNavigation(const FGeometry& MyGeometry, const FNavigationEvent& InNavigationEvent)
{
   EUINavigation Type = InNavigationEvent.GetNavigationType();
      
       // Returns Null
   TSharedPtr<FNavigationMetaData> NavigationMetaData = GetMetaData<FNavigationMetaData>();

       // Check fails
   if (NavigationMetaData.IsValid())
   {
   	TSharedPtr<SWidget> Widget = NavigationMetaData->GetFocusRecipient(Type).Pin();
   	return FNavigationReply(NavigationMetaData->GetBoundaryRule(Type), Widget, NavigationMetaData->GetFocusDelegate(Type));
   }

       // Returns this
   return FNavigationReply::Escape();
}

However, Buttons successfully retrieve this FNavigationMetaData, and will therefore execute the code in the if statement.

Still not sure what’s causing this yet, but it’s a start