bug caused by async