This bug triggered because we did not call `yield from` to the coroutine that starts the private message if it isn't found in cache. Obviously the fix for that is to make the destination resolution a coroutine and thus it'll be invoked correctly.