I noticed two of my databases had without warning stopped syncing two weeks ago. This is very disconcerting to me as I trust DEVONthink to keep all my clients synced for remote work when I don’t have access to my primary workstation.
Digging into the logs I found that the issue was that I had a number of empty files in the two databases. I’m not sure why DEVONthink freaks out about empty files. They are nothing special. Everyone can make one typing
touch empty_file in the terminal.
Getting rid of the files was not an easy task either. Deleting them (putting them in the trash) did not help as DEVONthink still refuses to sync with empty files in the trash. So I ended up having to delete them and then emptying my trash completely.
If anyone feels like recreating this simply do the following:
- Create an empty file (e.g.
- Add it to DEVONthink.
- You can no longer sync or repair your database before manually deleting the empty file.
I really hope that something can be implemented to make DT fail more elegantly in the case of empty files. I routinely add directories to DT and it would be quite a hassle to manually filter out empty files beforehand. Also I would LOVE a huge fat fatal error message when my databases fail to sync. This is something that I really really need to have working all the time. So if sync fails, or stops for whatever reason, please let me know!
Edit: Sorry if this came off a bit hard. I’m just always concerned when systems I trust to be working do in fact not. I realize there might be good reasons for the current behavior of DT with regards to empty files. So you can also read my post as a question about how I can avoid this situation going forward. Maybe I’ve missed a setting, or a notification, or something else? I’m considering writing a script to weed out empty files manually. If that sounds like a reasonable solution that would also be great to know.