Hi Shida. Even after the latest update, I am still experiencing syncing consistency issues on mobile.
Here are steps that can fairly reliably repro (1 in 3):
- Use this custom CSS to display the sync status in the top bar, required to ensure you can quickly determine what the sync status is: Custom CSS to show sync status on top bar in mobile app
- Create a new item, and slowly add characters to the item (roughly 1 character per second).
- Wait until it shows “Synced”, then stop typing characters. Make sure that it continues to say “Synced” for at least a few seconds (showing that if it was going to move to “Save now” that would have happened already).
- Open the list in a new tab on a computer. Verify that the last character(s) are missing from the item (if they are not missing, repeat from step 2 until there are missing characters).
- Wait as much time as you need to feel confident that mobile should have synced up these last characters by now (10 seconds?). As it showed “Synced” it should NOT require more time to sync up, but this part is just to prove that the update is lost entirely, it’s not simply delayed and the “Synced” status displayed prematurely.
- Refresh the web page and observe that the last characters are still missing.
- Open the dot-menu in the top right of the mobile app and click “Refresh”.
- Sync the web page, and verify that the characters are now properly added.
Here is a screen capture of the repro: https://streamable.com/22dec
It shows that the last character “j” is not properly synced.
Note that I showed it wasn’t synced on a mobile browser to visually illustrate the inconsistency in the screen recording, but you can more easily check for inconsistency using the desktop web app.
This repro shows that it is possible for updates to be lost, and the mobile app to improperly report as “Synced” even when it has content that is not pushed to the server. The content is not actually lost, as refreshing the app causes it to finally push up the change, but it still breaks the consistency model that “Synced” actually means all changes are present on the server.
This also is more serious than simply reporting “Synced” too early, as the behavior observed here indicates that new item content updates are missed entirely. As you can see in the video, it moves from “Saved” to “Synced” right as the new character is being added, and then never moves back to “Save now”, which is likely a race condition that leads to the lost update.
I believe this may be causing the “collapsed view” bug as well. Even though user data is a separate code path from actual content changes, it seems like a generic issue with the mobile syncing mechanism.