I can confirm that the solution for 4.20 engine is to build the 4.20 engine from source after modifying the file
Engine/Source/Runtime/Engine/Private/Components/CharacterMovementComponent.cpp
Adding the following lines at lines 8414 :
// Client may send a null movement base when walking on bases with no relative location (to save bandwidth).
// In this case don't check movement base in error conditions, use the server one (which avoids an error based on differing bases). Position will still be validated.
if (ClientMovementBase == nullptr && ClientMovementMode == MOVE_Walking)
{
ClientMovementBase = CharacterOwner->GetBasedMovement().MovementBase;
ClientBaseBoneName = CharacterOwner->GetBasedMovement().BoneName;
}
Tested on UE4 4.20.3 source from github and works perfectly as expected