{"action":"opened","issue":{"url":"https://api.github.com/repos/mapzen/TileStache/issues/77","labels_url":"https://api.github.com/repos/mapzen/TileStache/issues/77/labels{/name}","comments_url":"https://api.github.com/repos/mapzen/TileStache/issues/77/comments","events_url":"https://api.github.com/repos/mapzen/TileStache/issues/77/events","html_url":"https://github.com/mapzen/TileStache/issues/77","id":113103010,"number":77,"title":"Error when calling difference","user":{"login":"rmarianski","id":53770,"avatar_url":"https://avatars.githubusercontent.com/u/53770?v=3","gravatar_id":"","url":"https://api.github.com/users/rmarianski","html_url":"https://github.com/rmarianski","followers_url":"https://api.github.com/users/rmarianski/followers","following_url":"https://api.github.com/users/rmarianski/following{/other_user}","gists_url":"https://api.github.com/users/rmarianski/gists{/gist_id}","starred_url":"https://api.github.com/users/rmarianski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rmarianski/subscriptions","organizations_url":"https://api.github.com/users/rmarianski/orgs","repos_url":"https://api.github.com/users/rmarianski/repos","events_url":"https://api.github.com/users/rmarianski/events{/privacy}","received_events_url":"https://api.github.com/users/rmarianski/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-10-23T21:25:03Z","updated_at":"2015-10-23T21:25:03Z","closed_at":null,"body":"The error below suggests that we are generating invalid geometries at some point. It seems to fail when calling [boundary difference](https://github.com/mapzen/TileStache/blob/355af65db2609b13f3924012f95e3a17d0994300/TileStache/Goodies/VecTiles/transform.py#L1384) in the exterior boundaries transform.\r\n\r\n2015-10-23_21:18:19.53441 process - ERROR - Error processing: 10/293/404 - Traceback (most recent call last): |   File \"/usr/local/lib/python2.7/dist-packages/tilequeue/worker.py\", line 238, in __call__    cut_coords) |   File \"/usr/local/lib/python2.7/dist-packages/tilequeue/process.py\", line 330, in process_coord    padded_bounds, scale) |   File \"/usr/local/lib/python2.7/dist-packages/tilequeue/process.py\", l$ne 272, in _process_feature_layers    processed_feature_layers, post_process_data, coord.zoom) |   File \"/usr/local/lib/python2.7/dist-packages/tilequeue/process.py\", line 73, in _postprocess_data    layer = fn(feature_layers, zoom, **params) |   File \"/usr/local/lib/python2.7/dist-packages/TileStache/Goodies/VecTiles/transform.py\", line 1384, in exterior_boundaries    boundary = boundary.difference(buf) |   Fil$ \"/usr/local/lib/python2.7/dist-packages/shapely/geometry/base.py\", line 527, in difference    return geom_factory(self.impl['difference'](self, other)) |   File \"/usr/local/lib/python2.7/dist-packages/shape$y/topology.py\", line 50, in __call__    \"The operation '%s' produced a null geometry. Likely cause is invalidity of the 'other' geometry %s\" % (self.fn.__name__, repr(other))) | TopologicalError: The operati$n 'GEOSDifference_r' produced a null geometry. Likely cause is invalidity of the 'other' geometry <shapely.geometry.polygon.Polygon object at 0x7f235a473990>\r\n"}}