One particular doc won't sync to DTTG with Bonjour, but does with CloudKit

Today I created, using one of my MacBooks, a new Word doc in a folder.

At this point I was using Bonjour only. All files are indexed with the master file being on Dropbox.

A while later I noticed the log said “one item pending, couldn’t upload”. Advanced search showed it was the new Word doc. In spite of this it had sync’d to my other MacBook, but had not sync’d to my iPhone or iPad.

The problem Word doc appeared correctly in Dropbox on both Macs and iPhone and iPad.

I tried restarting the iPhone and iPad, but could not get it to sync.

Then I turned on CloudKit sync, (in addition to Bonjour) and the problem Word doc has now sync’d to both iPhone and iPad.

Even though it has now fully sync’d on all four devices, The Macbook is still saying “couldn’t upload one pending file” with separate messages for Bonjour and CloudKit. These are new messages not left over from earlier.

What property of an individual file can cause it to be pending like this?

The file could be locally blocked by any program. Close all your running programs and restart your Mac and see if that solves the problem.

Or you can try this solution:

It is for ejecting disks but could be valid for locked files.

Thanks. Since then I noticed I was getting a “manifest missing” error on the affected database which may be related.

I tried cleaning the database (syncstore) a few times but the manifest error returned as soon as it syncs.

In the end, I turned off sync on all four devices, deleted the databases on three of them. Rebuilt the database on the remaining Mac, and at this point have only turned sync back on for the other Mac. So far no “manifest missing” or “cant upload” messages with just the two Macs syncing via CloudKit. Will turn on sync on the iPad and iPhone tomorrow and see what happens.

I am finding DTTG very high maintenance, and close to abandoning it. All my files are in Dropbox and indexed, so thinking I will just use DEVONthink on the Macs, and view/edit files on Dropbox on the iPhone and iPad. I realise I would have to do a lot of “update indexed files” if I do this. Giving DTTG one more chance!

Just to explain why it was that sync of the affected indexed file to your other Mac worked, but not to the iOS devices: When syncing indexed files between Macs, the file itself is not synced - instead the pointer to that file is synced. That is why - for indexed files - it is necessary to have the files available at the same (external from DT’s point of view) path on all devices. Because the iOS device cannot actually index the files (no comparable paths to start off with…) the file itself is transferred to the iOS device. If - for whatever reason - the file cannot be uploaded to the sync store then it cannot be made available on the iOS device.

The problem you described, then, was less a problem of DTTG but of sync, which for whatever reason was unable to access and provide the file from your Mac. You are, of course, kind of double-syncing (so, your Mac to Dropbox and vice versa and your Mac to DTTG and vice versa) which does increase complexity and possible problems. There are numerous threads on “Pending” items here in the forum, and I would suggest you take a peak.

1 Like

Thanks Blanc. Yes I can see that explanation of why iOS is affected but not Macs, makes sense, and that it is all more complicated with indexed files. I have been involved in some of those pending threads you mention!

All of which helps explain why DTTG, especially with indexed databases, is difficult and high maintenance!

What do think of my idea of just using Dropbox on the iDevices and doing “Update indexed files” frequently to bring the edits made on iDevices into DEVONthink. I guess it might be OK for edits of existing files but wouldn’t catch new files added on iDevices.

Why are you indexing from Dropbox ?
Just curious your reasoning.

Not much :see_no_evil: But then again, I don’t use Dropbox, only index a small subset of my files, and only do that to be able to better support others here. So my opinion may be of reasonably little value in this case :wink:

I use DTTG on a daily basis. To me it is a companion app to DT (just as the iOS device to me is not anything close to a coequal to the Mac) and works just fine. I let sync do it’s stuff. Occasional hiccups solve themselves. And I have most of my files with me on the road - without ever having to put them in somebody else’s cloud structure.

I have to share quite a lot of my data with my sisters, and other family, via shared Dropbox folders.

I am thinking about limiting my exposure to indexing problems by gathering all shared files into a single new Database, and everything else in non-indexed Databases. Or maybe keep all the shared-with-family stuff out of DT.

Are you implying that having masters in Dropbox is more problematic than having them in a non cloud location?

If I set up primary Mac with indexed Databases and local masters (not in Dropbox or iCloud) how does second Mac access the files…is it like DTTG, where if I select “always” then local copies are downloaded to the iPhone/iPad?

I have now turned on CloudKit on my iDevices and no sign of any “manifest”, “pending”, or “Record List” or other messages anywhere :grinning: :crossed_fingers:

I’m not sure what you mean by indexed databases - databases are never indexed, whilst their contents may well be; the nomenclature is indexed (a file which is external to DEVONthink and a reference to which is kept in DEVONthink) or imported (a file which is present in DEVONthink, i.e., stored in the database).

Imported records (i.e. those which are local to DEVONthink, i.e. those for which the file is actually included in the database package) are synced between DT/DT/DTTG via Bonjour or a sync store - for these records the actual file is copied in the sync process (as a sync stream rather than as the unchanged file).

Indexed records (i.e. those for which within the database there is only a reference to the externally sourced file) are synced between DT/DT by copying the reference via Bonjour or sync store. Because the reference would be moot in DTTG, when syncing to DTTG the file itself is copied. That means that in the case of Macs the file has to be present at the same path on all devices. If you are indexing it is up to you to make sure that is the case - by using whatever other sync you choose (so it might be a locally mirrored cloud location, ChronoSync or whatever). (@BLUEFROG on second thoughts I’m not sure this is totally true - would the location be created and the file copied on first sync if neither were present on the second Mac?)

There is nothing inherently wrong with indexing; but it does naturally increase the complexity - rather than one source of possible changes (DT) there are at least two (DT, Finder) and often rather more (DT/DT/DTTG, Finder, Dropbox, other external apps…).

I think the implication is that indexing creates additional complexity and there should be a reason for preferring indexing over importing. Sharing files with others who don’t use DT is such a reason (well, obviously, they should all be using DT, but that’s beside the point :stuck_out_tongue_winking_eye:).

Thanks very much for detailed reply about Mac-to-Mac DT syncing if files are referenced.

Bottom line is that if I want to sync Indexed Databases between Macs, without using Dropbox, I will need to use Chronosync (or equivalent) to keep the masters and paths the same on the second mac.

(Apologies the term “Indexed Databases” was my shorthand for Databases which index referenced files external to DT).

Correct - at which point the question would be why you shouldn’t just keep the files in DT (i.e. imported rather than indexed). I would suggest that if you need to share files, you should keep them somewhere you can share them (and Dropbox is as good as any) and index them; my experience is that most sync errors will resolve themselves, e.g. after the next restart of your Mac.


Thanks. Yes, the “Chronosync” option is not very appealing. I floated it as it seems that having them Dropbox might be an additional cause of issues.

Anyway things are currently good again, so I am staying as I was, and will give things more of a chance to sort themselves out.

Thanks for the clarification.

In the case you’re presenting, Dropbox is responsible for doing its own syncing to the devices, not DEVONthink. And yes, Dropbox would need to be downloading local copies to the machine for DEVONthink to access.

That isn’t what happened. In the case I presented, the problem new Word file was created on primary Mac, and primary Mac was the machine where the DT Log said couldn’t upload the file.

At that point the new Word file was showing in Dropbox in both Macs and both iDevices, and in DT3 on secondary Mac, just not in DTTG on the iDevices.

I don’t think this was a Dropbox problem. Dropbox did what it was supposed to do.

And is Dropbox using Smart Sync to keep files online only?

No Dropbox is not using Smart Sync.

I understood Blanc’s explanation to mean that the fact that Dropbox had sync’d the file was probably the reason why the secondary Mac was showing it in DT3 even though primary Mac couldn’t upload it. Which wouldn’t apply to DTTG on the iDevices.

I created a new Numbers spreadsheet today, on my primary Mac, and spent quite a lot of time editing it, and saving as I went. The file is in DT3, indexed.

When I looked at the DT log after doing the above there was a “couldn’t upload” message and several “missing manifest” messages. I didn’t investigate at all, but just closed and reopened DT3. The log messages had cleared of course, but (a few hours later) have not recurred and the new Numbers file is sync’d to all devices.

And is the file being created in the indexed Finder folder directly, e.g., created and saved to it from Excel?

Actually the new file started as an existing indexed Numbers file, already in the Dropbox folder and in DT3.

I duplicated it in DT3, renamed the duplicate and opened it in Numbers from DT3. The new file appeared in Dropbox as expected.

Have you tried creating a new sync store (with a new name) and seeing if the behavior perists?