handle update failures gracefully