TopologyExceptions are thrown when the topological graph GEOS uses to compute relationships enters an invalid or impossible state. There are two reasons for TopologyExceptions to be thrown: 1. GEOS is handling a valid geometry case incorrectly. That is, a '''bug'''. 1. GEOS is handling an invalid geometry case correctly. Before submitting a bug ticket based on a TopologyException, ensure your geometries are valid, by running the IsValid method on them. In PostGIS, the ST_IsValid() function calls the appropriate GEOS test. If your geometries are invalid, the problem is with your geometry, not with GEOS.