anchor.diff:  
           lockedTask.status = Task.statusInProgress;
           lockedTask.attempts += 1;
  -        lockedTask.startTimestamp = DateTime.now().millisecondsSinceEpoch;
  +        lockedTask.startTimestamp = DateTime
  +            .now()
  +            .millisecondsSinceEpoch;
           lockedTask.reservedForAgentId = agentId;
           transaction.queueMutations(inserts: <Task>[lockedTask]);
           await transaction.commit();
  -      } catch (error) {
  -        await transaction.rollback();
  -        rethrow;
  -      }
  -    });
  +      });
  +    } catch (error) {
  +      throw const ReservationLostException();
  +    }
     }
   }
   
  
positive.code:       });
      }
  
      while (true) {
        final FullTask task = await taskProvider.findNextTask(agent);
  
        if (task == null) {
  
negative.code:         return ReserveTaskResponse(task.task, task.commit, token, keyHelper);
        } on ReservationLostException {
          // Keep looking for another task.
          log.debug('Reservation lost for task ${task.task.name} on commit ${task.commit.sha}');
          continue;
        }
      }
  
      log.warning('Could not secure reservation after $maxAttempts; giving up');
      return const ReserveTaskResponse.empty();
    }
  }
  
  