choose what exception to throw if update fails