Sync issues between multiple Macs and iOS devices

As the title says! I have 3 Macs an 3 iPhone/iPads that I like to synce codebook across. They are all running the latest codebook version and MacOS/iOS. The all have the same sync key and are syncing with dropbox. There are no errors displayed when syncing. However, different devices do not display the same entries even after syncing. e.g. if I update the password on one machine, or create a new entry on another- they often do not tramsmit this infomation to other machines. I gnerally don’t sync every time I log in and it is difficult for me to determine which machine is the ‘master’ as I update or make new entries on the particular machine that I am using at that time. Can you help please, as this is driving me slowly mad…?

1 Like

Hey @Tanny

Thank you for your support of Codebook and for posting to the discussion forum, although I’m sorry for the trouble. It sounds like something may have gone awry with your sync state. Let’s try these steps:

If you’re syncing with Google Drive or Dropbox

  1. Enable Sync Operations on the device which you believe to be most up-to-date by following these instructions: Codebook Help - Sync Operations
  2. On that same device, set the Operation to Overwrite and start the Overwrite.
  3. On every other device you’re syncing with, enable sync operations by following these steps: Codebook Help - Sync Operations
  4. Set the operation to Merge and start the Merge. Choose Google Drive or Dropbox as the conflict authority.

If you’re syncing over WiFi

  1. Enable Sync Operations on your mobile device by following these instructions: Codebook Help - Sync Operations
  2. Set the operation to Merge on your mobile device and start the Merge. Choose whichever device you feel to be “most correct” as the conflict authority.
  3. Repeat steps 1 & 2 for every other mobile device you’re syncing with.
  4. If you have any other Desktops/Laptops, repeat steps 1 & 2 with one of the mobiles and the other Desktops/Laptops.

Note: Choosing the conflict authority doesn’t choose all the data from one device, it’s only used in edge cases where the Standard conflict resolution can’t determine which record was updated more recently as described here: Codebook Help - Sync Operations

After performing these steps, make a test change and perform a standard sync operation to confirm that it syncs properly. Also, would you mind sharing how long you’ve been using Codebook?

Please let me know the results. I’ll be happy to help if you have any questions or run into any issues along the way. Thanks!

1 Like

Hi Micah,

I am hesitant to go ahead even with step 1, as I tried to explain I do not know which machine has the most up-to-date version. I was interchangeably entering new data on any machine, so there is not really one device that is the most up-to-date. Especially, as it is clear that changes are not being transmitted to the master dropbox database, yet the sync says that everything is successful. I am concerned that if I take the action that you describe the fragmented nature of states will mean that I will lose data.

Please advise me on the best course of action.

Many thanks,

David

Hey David,

Thanks for the response.

Just to clarify, the result of these steps should be a merge of all your data on all of your devices. So for example, if you have Entry 1 on iPhone 1 and Entry 2 on Mac 1, the result should be Entry 1 and Entry 2 on both devices (same thing for fields/categories/etc.)

The merge operation purposely doesn’t propagate delete operations. So for example, if you had Entry 1 on iPhone 1, and Deleted Entry 1 on Mac 1, then merged them, Entry 1 would be present on both devices after the merge (whereas with standard sync Entry 1 would be deleted on both devices).

For the Google Drive/Dropbox steps, the reason we’re performing the overwrite operation in the first portion of the instructions is to replace your previously synced data to “reset” the remote synced copy of your data. This will have no affect on overwriting any pending changes on other devices.

As an added precaution, if you’d like you can take manual backup copies of your encrypted databases on each device.

  • On your iOS devices you can take an iTunes backup by following these instructions: How to back up your iPhone, iPad, and iPod touch - Apple Support (iTunes backups contain an encrypted copy of your Codebook database)
  • On your MacOS devices, open Finder and access Go menu > Go to Folder, paste this address in the address bar: ~/Library/Group Containers/PD7G6HRMGV.net.zetetic.STRIP/Strip, copy the default.strip package, and paste it in another location (onto the Desktop for example)

If you’d prefer to interface privately, you’re welcome to write in to our support at support@zetetic.net

Let me know if this explanation helps clarify what the instructions will accomplish and the results.

Thanks!

Cheers,
Micah

1 Like

Hi Micah,

Sorry to trouble you. I was going to try what you suggested starting with my ipHone as the first device. But unfortunately, this doesn’t appear to allow overwrite or merge operation that I can see and the online instructions don’t say anything about iOS. So I am not clear what to do.

Secondly, if there is only one database, strip.db, on dropbox then what you suggest will just propagate the errors. It is not deletions that i am worried about- it is that the same entry on different devices is syncing a different password. Sometimes syncing a new entry doesn’t propagate the password to a second device and files remains blank

Sorry for being thick.

David

@Tanny,

Thanks for the response and no trouble at all, happy to help.

I was going to try what you suggested starting with my ipHone as the first device. But unfortunately, this doesn’t appear to allow overwrite or merge operation that I can see and the online instructions don’t say anything about iOS. So I am not clear what to do.

There’s a platform selector on the documentation page where you can select iOS. This link will take you directly the iOS instructions: Codebook Help - Sync Operations

Secondly, if there is only one database, strip.db, on dropbox then what you suggest will just propagate the errors. It is not deletions that i am worried about- it is that the same entry on different devices is syncing a different password. Sometimes syncing a new entry doesn’t propagate the password to a second device and files remains blank

From your description here, it sounds like you might still be using Codebook 3 (since there’s only one strip.db file in your Dropbox).

Codebook 3 won’t sync with Codebook 4, so if you have some devices which are on Codebook 3 and some devices which are on Codebook 4 that would explain what some data isn’t propagating.

Could you check what version of Codebook you’re using on each device?

On iOS you can view the version by logging in and navigating to [More] > Settings, the version number is at the top of the Settings screen near the app icon.

On macOS you can view the version by logging in and accessing Codebook menu > About Codebook.

Could you let me know what version numbers your devices are reporting?

The steps I provided above are for Codebook 4.

We have instructions here for updating your devices to Codebook 4: Updating to the Latest Version

Cheers,
Micah

Hi Micah,

Many thanks, I did not see the platform selector at the top. It is not very obvious!

As to the strip.db thing, I was referring to what was said in the Codebook help- Sync Operations page "Local Database – The strip.db file that is the main database for the local Codebook instance”. I have just looked and my dropbox does not have a strip.db file. It has many codebook-changes-XXX.db files and a codebook-metadata.db file. I do not see any strip.db file on my Macs either

All my devices appear to be running 4.3.3 versions.

Does this sound correct?

Best wishes,

David

David,

It has many codebook-changes-XXX.db files and a codebook-metadata.db file

Yup, that is correct for Codebook 4.

All my devices appear to be running 4.3.3 versions.

For iOS devices, 4.3.3 is the latest release, for macOS 4.3.7 is the latest (although 4.3.3 will be sync compatible).

So let’s try to proceed with the Overwrite/Merge combination steps from my previous response to “re-initialize your remote” (Dropbox).

Let me know the results. Thanks!

Cheers,
Micah

Good to know and sorry about that, we’ll take a look at making that more prominent, we want it to be very noticeable! We’ve made a lot of additions and update to the Help pages over the last year and a lot of them employ the platform selector. Sorry we downplayed it in the page layout/style!