FMessageEndPoint->Send() does not use Delay?

After a long quest to find information about the elusive IMessageBus in UE4, I finally have 2 Actors sending messages to each other.

Each has an FMessageEndPoint class, initialised like this:

messaging = FMessageEndpoint::Builder(TEXT("EndPoint")).Handling<FTestMessage>(this, &AMessageSendActor::HandleMessage);

A message is then sent:

if (messaging->IsEnabled()) {
	if (messaging->IsConnected()) {
		messaging->Send(new FTestMessage("HOWDY!!!"), target->messaging->GetAddress(), FTimespan::FromSeconds(100.0));
		isSender = false;
	}
}

Using the FTimespan::FromSeconds(100.0) I’m expecting a 100s delay.

However, the HandleMessage delegate INSTANTLY gets this message.

void AMessageSendActor::HandleMessage(const FTestMessage& Message, const TSharedRef<IMessageContext, ESPMode::ThreadSafe>& Context)
{
	UE_LOG(LogTemp, Warning, TEXT("%s"), *Message.val);
}

I suspect I’m not understanding the process properly. Perhaps HandleMessage is meant to be instant? I notice the Deconstructor of the FTestMessage is also being called immediately, so presumably it’s not even being held in a queue anywhere?

Hiding in the source code, line 336 of MessageRouter.cpp …

if (false) //(Context->GetTimeSent() > CurrentTime)
{
   DelayedMessages.HeapPush(FDelayedMessage(Context, ++DelayedMessagesSequence));
}
else
{
   DispatchMessage(Context);
}

For some reason this has been commented out and disabled with an if(false).

Possibly a temporary testing change that was accidentally committed into the source.

Bug report and test project submitted to the devs…