We have been using Android CBL (2.0) with Sync Gateway (2.0) and CB Server (CE 5.0.1) for almost a year in a producton environment.
Recently we have started having issues with some documents not uploading to the server, with the users sending us screenshots of the data correctly entered and saved in their phones, but the server is not showing the same information, usually we only see in the server part of it. We have seen this issue even in documents with 1 revision.
Documents are sometimes modified by the server, although only a few times, and users do not share the same documents amongst them, but the problem has been seen in documents that are only updated and modified by the user and never the server.
Is there anything that we could do to “force” the users’ document version from the app to the server?
On the client side you can reset the replicator — this will force the next sync to examine every doc and compare revision IDs between client and server. That should resolve the problem. (But it does make that next sync slower than usual.)
Are there any more practical solutions? Since the problem will repeat eventually, reseting the syncs daily/hourly does not seem to fix the underlying problem. Is there any sync configuration to force it to resolve any conflict, no matter what version wins?
Or, preferably, a way to force the client’s version to the server?
Also, just to be thorough, is it clear the user has been able to connect to the server long enough to run a replication before reporting the docs aren’t syncing?
IIRC, it was a race condition that sometimes led to a false conflict when pushing a doc to the server, resulting in the doc not being pushed.
… I just looked it up, and the actual behavior reported was an assertion-failure crash. It’s possible the bug might manifest without the crash, though.
The release is going through the build process now, then QE … I can’t quote a time, but maybe a week?