La devolución de llamada de Python DeferredList informa de éxito cuando los aplazamientos generan error

Tengo el siguiente script simple:

#!/usr/bin/env python
from twisted.internet import defer             
from twisted.web.client import getPage, reactor

def success(results):
  print 'success'              

def error(results):
  print 'error'         

def finished(results):
  print 'finished', results

tasks = []

d = getPage('thiswontwork').addCallback(success).addErrback(error)
tasks.append(d)

dl = defer.DeferredList(tasks)
dl.addCallback(finished)

reactor.run()

Eso produce el siguiente resultado:

error
finished [(True, None)]

Esperaría que esta tarea de error devuelva un falso ya que la tarea getPages falla y llama a su devolución de llamada de error. ¿Alguien puede explicar este comportamiento?

Respuestas a la pregunta(2)

Su respuesta a la pregunta