multiple messages went missing since run once only grabbed the latest

copied logic from run_once