Um, `source.iter_ruptures`? It could definitely fail: https://github.com/gem/oq-hazardlib/blob/master/openquake/hazardlib/source/complex_fault.py#L81.