code: func (t *Task) Fail() error {
  	return t.guardResolution(func() error {
  		return t.lifecycle.Abandon(t)
  	})
  }
docs: // Fail signals the lifecycle that work on this task has failed, causing
  // it to return the task to the main processing queue to be retried.