MerginMaps / MerginMaps/mobile

Sync gets permanently blocked when mobile edits a feature deleted+synced by QGIS plugin (GEODIFF CONFLICT delete_nothing)

Open
#4,363 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug data corruption - sync failure - crash - anr not-reproducible
Dominant language
C++
Stars
388
Forks
87
Avg merge
2d 7h
Merged PRs (30d)
20

Description

Description
When QGIS plugin client and mobile client start from the same project version, then the plugin deletes a feature and syncs, and afterwards the mobile client edits that same (already deleted) feature and tries to sync, the sync becomes permanently blocked (project can’t be synced on mobile anymore).

This reproduces on PROD server.

Environment
PROD

Application (+ app version, build, operating system)

  • QGIS version: 3.44.7-Solothurn
  • Plugin version: 2026.2.1
  • iOS app version/build: 26.3.870211
  • iOS version: iOS 26.3

Steps to reproduce

  1. Ensure QGIS plugin client and mobile client are on the same initial project version (no pending changes).
  2. In QGIS (plugin), delete a feature in a layer (example from error: polygon_layer) and sync to server.
  3. On mobile, open/edit the same feature that has already been deleted by the plugin.
  4. Save the edit on mobile.
  5. Tap Sync in mobile.

Actual results

  • Mobile app shows “Failed to synchronise your changes”.
  • Sync fails with a GEODIFF conflict and never recovers; further sync attempts keep failing and the project remains stuck on the device.

Error details (from iOS dialog):

  • Failed to create new version: polygon_layer.gpkg error=sync error: project test onboarding/test_v2_pull
  • GEODIFF WARNING: CONFLICT: delete_nothing
  • GEODIFF ERROR: Conflicts encountered while applying changes! Total 1
  • Conflict snippet includes: table: "polygon_layer", type: "delete"

Expected results

  • Mobile should prevent editing a feature that was deleted on the server (or warn “feature no longer exists” and discard/rollback the local edit).
  • Even if such an edit happens, sync must recover (e.g., drop invalid change / present resolution) and must not permanently block syncing.

Screenshots or logs

  • iOS sync error dialog showing GEODIFF WARNING: CONFLICT: delete_nothing and GEODIFF ERROR: Conflicts encountered while applying changes! Total 1.

Conclusion
Created by GitHub Copilot and supervised by a human test analyst.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure using the listed QGIS-plugin and mobile steps, then start at the mobile Sync flow that reports the GEODIFF delete_nothing conflict for polygon_layer. Trace how this conflict is retained after the failed sync. Done means editing a server-deleted feature no longer permanently blocks synchronization, with the local edit prevented, discarded, rolled back, or clearly resolved.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios
Domain
databases, distributed-systems, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.