# File lib/chef/provider/deploy.rb, line 437
      def with_rollback_on_error
        yield
      rescue ::Exception => e
        if @new_resource.rollback_on_error
          Chef::Log.warn "Error on deploying #{release_path}: #{e.message}" 
          failed_release = release_path
        
          if previous_release_path
            @release_path = previous_release_path
            rollback
          end
          converge_by("remove failed deploy #{failed_release}") do
            Chef::Log.info "Removing failed deploy #{failed_release}"
            FileUtils.rm_rf failed_release
          end
          release_deleted(failed_release)
        end
        
        raise
      end