improved update error handling