Troubleshooting
“Code must be 1-32 chars matching [A-Z0-9-_]”
Section titled ““Code must be 1-32 chars matching [A-Z0-9-_]””The most common import error. The feature’s code resolved to either:
- An empty/whitespace-only string. Often the source data has buffer or edge fragments without labels (DFO ships ~100 of these alongside its real subareas). They’re safe to ignore — they’re just polygon padding, not actual zones.
- A string with characters outside the allowed set (spaces, slashes, asterisks, accents).
The import error includes the original property value so you can see exactly what was rejected. Either fix the source data or use a different Code property that has cleaner values.
”Geometry must be Polygon or MultiPolygon”
Section titled “”Geometry must be Polygon or MultiPolygon””The feature has a Point or Line geometry. The Import dialog only accepts polygon-shaped features. Filter your source data or open it in mapshaper to drop non-polygon features.
”Geometry is invalid (self-intersecting or malformed)”
Section titled “”Geometry is invalid (self-intersecting or malformed)””The polygon has a topology issue — usually a vertex chain that crosses itself. Open the file in QGIS or mapshaper, run a “fix geometry” / “snap to grid” / “buffer 0” operation, then re-export and re-import.
A new encounter wasn’t auto-tagged
Section titled “A new encounter wasn’t auto-tagged”Check, in order:
- Does the encounter have GPS? Encounters with
lat=0, lon=0are treated as “no GPS” and aren’t tagged. Open the encounter’s location dialog and confirm it has real coordinates. - Does the population have any Active layers? On the layers list page, the Active toggle on each layer controls whether it contributes to assignment.
- Does the encounter’s GPS actually fall inside any polygon? Open the encounter detail page — the location map shows polygons for active+visible layers. If your encounter sits outside everything, that’s expected behaviour.
- If you just imported or edited a layer, the recompute job runs in the background. Check your job menu — assignments appear after the job finishes, not instantly.
A polygon shows up but in the wrong place
Section titled “A polygon shows up but in the wrong place”Most likely the source file is in a non-WGS84 projection. Authoritative public datasets use WGS84 by default; if you’re working with custom data, run it through mapshaper and explicitly export as WGS84.
If you’re working with the DFO ArcGIS REST API, append &outSR=4326 to your query URL to force WGS84. Without it you’ll get Web Mercator, which the import treats as out-of-range coordinates.
Recompute job failed
Section titled “Recompute job failed”Open the job from your job menu and look at the error. Common causes:
- “relation does not exist” — the database hasn’t been migrated to the latest schema. Apply migrations.
- “could not be translated” — usually fixed in a backend release; pull latest and redeploy.
- Connection timeouts — recomputes time out if a population has hundreds of thousands of encounters. The reaper resets stale jobs every 30 minutes; if you keep hitting this, subdivide by triggering per-area recomputes from individual rows instead of population-wide.
”Layer X already has an area with code Y”
Section titled “”Layer X already has an area with code Y””Codes are unique per layer. Either pick a different code or delete the existing area first.
If you got this during import, it means a previous import (or manual creation) already added that code. Tick Overwrite by code in the Import dialog to replace existing areas, or delete the layer and start fresh.
Polygons don’t render on the encounter map
Section titled “Polygons don’t render on the encounter map”Each layer has two independent toggles: Active (participate in assignment) and Show on encounter map (render on the per-encounter map overlay). A layer can be active but invisible on encounter maps — useful when you want assignment-driven analytics but don’t want the encounter detail page cluttered.
If your polygon isn’t showing up on a specific encounter:
- Confirm the layer’s Show on encounter map is on.
- Confirm the encounter has GPS and that the GPS falls inside the polygon.
- Confirm the layer’s Active is on (and was on at the time the encounter was last created/updated). If the layer was inactive when the encounter was saved and is now active, run a Recompute layer to re-tag.
I want to start over with a layer
Section titled “I want to start over with a layer”Two options:
- Refresh in place — re-import with Overwrite by code ticked. Existing areas with the same codes get replaced; new codes get added. Codes that don’t appear in the new file are left alone (still in the layer).
- Delete and recreate — from the layer’s row in the layers list,
⋮→ Delete layer. This cascades through every area in the layer plus their assignments. Then create a fresh layer and import.
Hard delete on a layer is irreversible. The button confirmation tells you the area count and that assignments will be cleared — read it before clicking through.
Import dialog rejects features that look fine
Section titled “Import dialog rejects features that look fine”Two things to check:
- Coordinate range: longitude must be in
[-180, 180], latitude in[-90, 90]. Way more often than not, this means a wrong projection (see “wrong place” above) — Web Mercator coordinates are in the millions of meters, not degrees. - Bounding-box span: by default the importer rejects polygons spanning more than 5° of longitude or latitude (a sanity check against accidentally importing the entire ocean as one zone). Bulk imports bypass this; if you’re hitting it on a single-feature manual import, raise the Max area span (degrees) in the population’s settings.