transactional works, except the failedcase2