I think it's possible that you do not have even a collection, but just a PlanarSurface object, or when you are parsing you are always creating a list even for a single planar rupture?

By using directly oq-hazarlib it's possible to create a CharacteristicFaultSource passing directly a PlanarSurface without putting it inside a list