code: func (l *DefaultLifecycle) Abandon(task *Task) error {
  	if err := l.availableTasks.Push(task.Bytes()); err != nil {
  		return err
  	}
  
  	return l.removeTask(task)
  }
docs: // Abandon marks a task as having failed, pushing it back onto the primary
  // task queue and removing it from our worker queue.