Collect: incorrect locations sometimes captured from v2024.1.0 to v2024.1.2

Users of ODK Collect from v2024.1.0 (released February 14, 2024) to v2024.1.2 (replaced on March 22, 2024) may have captured incorrect locations in geopoints, geotraces, geoshapes and the audit log.

We learned of this issue on March 19 (Thanks to @mathieubossaert) and issued a high-priority fix on March 22.

Our initial testing led us to believe that it was very limited in scope, but we now realize that it has impacted more users than we thought.

We take issues that affect data quality very seriously, and want to be transparent about exactly what happened, what the impact was, and what steps we’ve taken to ensure it doesn’t happen again.

What happened
There was a change in Collect v2024.1.0 on February 14 to upgrade to the latest version of Google’s location API. As part of that upgrade, we also changed how we requested and saved locations. That change introduced a bug that would sometimes return stale locations.

The bug is triggered when a geopoint question automatically saves a point that matches or exceeds the accuracy threshold (defaults to 5 m). That same point is then sometimes automatically saved by the next location-related question.

The impact
If you are a project manager and your data collectors collected location data with Collect v2024.1.0, v2024.1.1, or v2024.1.2, you are likely impacted by this issue. Please make sure your data collectors are running Collect v2024.1.3 and review your data to ensure that the locations you collected are unique.

Steps to fix
If you are impacted, consider alternative ways of sourcing the location data. For example, if you took images with each point, those images likely have locations embedded in the EXIF tags.

We have made adjustments to our code review and quality assurance process to ensure this kind of issue does not happen again. We will also consider changes to ODK Central so project managers have more visibility into potential data quality issues (e.g., outliers).