Better error handling

Implement better error handling and present failure messages to the users so the issue is known when it doesn't successfully complete.