wrapped all callback calls in try...catch block with correct error throw out of the main flow