         KD.utils.wait timeout, ->
           KD.singletons.computeController[task] machine
 
-    (err)->
-
-      eventListener.revertToPreviousState machine
+    (err)=>
+
+      @eventListener.revertToPreviousState machine
 
       switch err.name
 
         when ComputeErrors.TimeoutError
 
           retryIfNeeded task, machine
+          call.cancel()
 
         when ComputeErrors.KiteError
 


    machine.getBaseKite( createIfExists = no ).disconnect()

    @kloud.stop { machineId: machine._id }

    .then (res)=>

      @eventListener.addListener 'stop', machine._id
      log "stop res:", res

    .timeout ComputeController.timeout

    .catch errorHandler 'stop', @eventListener, machine


  StateEventMap =

      status      : machine.status.state
      percentage  : 0

    call = @kloud.info { machineId: machine._id }

    call.timeout ComputeController.timeout

    .then (response)=>

