You have a multi-line geometry.
You can use the Merge lines algorithm after you have connected the the two parts, so that they form a continuous line.
You can also split the multi-geometry into two (simple) geometries using the Multipart to single parts algorithm, join them (using the Vertex Tool in the Digitizing Toolbar) to form a continuous line and ...
This can be done in QGIS Python console. First, list all the layers, then iterating into all layers, get each layer's geometry type and set new name. Here is the code:
from qgis.core import QgsProject
from qgis.core import QgsVectorLayer
# list all layers and iterating into all of them
for layer in QgsProject.instance().mapLayers().values():
Your asset ID doesn't look correct, so I cannot try it. But just by looking at it, everything look OK except for when you pass sub_region as your Export.table.toDrive() collection. That property must be a feature collection. Try with this:
In my opinion you do not need any SRID because you are not working with ST_Length_Spheroid().
What @she_weeds is pointing on is indeed correct.
SELECT ws."Network", count(ws."Network"), sum(st_length(ws.geometry))
FROM "Water_Service_Area_Boundaries_Non_Cadastral" AS ws, "W_Mains_DSC_ExclAbandoned" AS wmain
WHERE ST_Intersects(ws.geometry, wmain.geometry)
small contains only polygons, so its geometry is a MultiPolygon. big contains polygons and a LineString, so its geometry is a GeometryCollection. While MultiPolygon has a coordinates() method, GeometryCollection hasn't.
big.geometry().coordinates() fails because a GeometryCollection doesn't have a coordinates() method.