You can try changing the line xpos, ypos = self.offset[0] into
try:
xpos, ypos = self.offsets[0]
except IndexError:
## Didn't finish rendering/doesn't know where children are
renpy.redraw(self, 0)
return (0, 0)
and see what happens. I made some updates to ZoomViewport a while back that might have addressed this problem though - I'll get in touch on Discord to test things out!