diff --git a/pysam/libcalignmentfile.pyx b/pysam/libcalignmentfile.pyx index d65d06b4c..1379d4691 100644 --- a/pysam/libcalignmentfile.pyx +++ b/pysam/libcalignmentfile.pyx @@ -2256,9 +2256,16 @@ cdef class IteratorRowAllRefs(IteratorRow): self.rowiter.cnext() # If current iterator is not exhausted, return aligned read - if self.rowiter.retval > 0: + if self.rowiter.retval >= 0: return makeAlignedSegment(self.rowiter.b, self.header) + if self.rowiter.retval == -2: + raise IOError('truncated file') + elif self.rowiter.retval < -1: + raise IOError( + "error while reading file {}: {}".format( + self.samfile.filename, self.rowiter.retval)) + self.tid += 1 # Otherwise, proceed to next reference or stop