Hi @rickcogley
Thank you for your longtime support of Codebook and for reaching out, although I’m sorry to hear about the trouble with images added to your iPhone not syncing to your Mac.
Codebook for iOS and macOS supports importing and displaying HEIC images (Codebook for Windows/Android won’t display HEIC’s but they will still sync). If they are above the the maximum image size threshold, you should have been prompted to compress them (which would convert them to JPEG format), but from your description it sounds like they were below that threshold (10MB): Codebook Help - Image Attachments
From my interpretation of the description of the issue you experienced, it sounds like one of a couple of things could have gone wrong:
Something Went Awry With Your Sync State
Each Codebook client tracks what changes have been seen from other clients/remotes it syncs with. This allows it to only pull down/apply changes from the other client/remote which haven’t already been seen by this client and only push up/send changes which haven’t been seen by the other client/remote. If something had gone awry with this tracking, a client could have thought it already pushed a change to the remote which it didn’t or a another client could have thought it already applied a change which it didn’t.
Something Went Awry With the Change Capture or Upload (on the iOS device)
Codebook captures and stores changes for syncing as edits are made in the interface. Then when syncing with a remote it determines which changes it has locally which haven’t been seen by this other client/remote and uploads them. If an error occurs when attempting to capture a change or upload it, we attempt to properly handle it within Codebook, but if somehow this error wasn’t gracefully handled (or a hard crash occurred), it could potentially cause an issue with the change not properly being synced to other devices.
I noticed that you did write in to support separately with a crash report from one of your iOS devices when attempting to sync with Google Drive, so this could theoretically fall under the second description there.
Because this issue occurred for you, to make sure all your Codebook data is up-to-date and properly synced with all your devices I’d like to have you perform a one time operation to reset your sync state. This will re-establish your sync tracking/remote with the Codebook data present on all your Codebook devices. These initial Merges will take longer than a standard sync as its comparing/replaying all your Codebook data from each device involved.
Before performing these operations, if you don’t use Time Machine or some other mechanism to have an additional backup of your encrypted Codebook database, I’d like to have you take a manual backup of your current Codebook data as an added precaution:
Take a Manual Backup
- Sync all your Codebook devices so that your Mac has the most recent Codebook data present.
- Quit and close Codebook on your Mac.
- Open Finder and Go menu > Go to Folder and paste this location in the address bar:
~/Library/Group Containers/PD7G6HRMGV.net.zetetic.STRIP/Strip
- Within that location is a
default.strip
package, this contains all your current encrypted Codebook data. Copy that package and paste a copy onto the Desktop.
Here are the steps to perform the one time overwrite/merge to reset your sync state
If you’re syncing with Google Drive or Dropbox
- Enable Sync Operations on the device which you believe to be most up-to-date by following these instructions: Codebook Help - Sync Operations
- On that same device, set the Operation to Overwrite and start the Overwrite.
- On every other device you’re syncing with, enable sync operations by following these steps: Codebook Help - Sync Operations
- Set the operation to Merge and start the Merge. Choose Google Drive or Dropbox as the conflict authority.
If you’re syncing over WiFi
- Enable Sync Operations on your mobile device by following these instructions: Codebook Help - Sync Operations
- 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.
- Repeat steps 1 & 2 for every other mobile device you’re syncing with.
- 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.
If this issue does occur again for you after resetting your sync state, we’d definitely like to dig further into it to determine what could have caused it. To do this, we’d request that you leave your devices in the state that they’re in after the sync doesn’t propagate and we’d have you collect the sync logs from each device and then provide you with a tool to (locally) inspect your changesets (chunks of changes) in the remote (or device if syncing over WiFi) which should help diagnose where the issue occurred.
Please let me know if you’re able to reset your sync state using those instructions and if there’s anything else I can do to assist. Thanks!
Cheers,
Micah