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: * GEOS is handling a valid geometry case incorrectly. That is, a '''bug'''. * 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.