Async MessageContract pattern needs more sophisticated contract validity check.