try and ensure promise chain finishes