Workaround for Joplin-server encrypted notes sync error
Joplin-server is a nice solution to sync multiple Joplin instances. In fact, you can even use it to sync only a subset of your notebooks to certain devices by providing different user accounts for those devices and using the notebook-sharing functionality in Joplin-server.
I did find in Joplin-server that syncing shared encrypted notebooks didn’t always succeed in sharing the master keys. One workaround — if you own all the accounts, of course — is to use a single master key with a very strong password.
To achieve this:
- Close your secondary Joplin client with the option Joplin->Settings->Sync (advanced)->’delete local data and re-download from sync target’;
- Connect to the postgresql database with the credentials that you used to set it up (e.g. check your
.env
if you used docker-compose). Go to the table ‘items’; - Inspect the stored master keys, e.g.
[...] content LIKE '%activeMasterKeyId%'
(should only hit for ‘info.json’); - Copy the value of the
content
andcontent_size
fields of your primary account to those of your secondary account (you can determine primary and secondary by comparing the keys with those found in Joplin->Settings->Encryption); - On the secondary Joplin system, edit the database in
~/.config/joplin-desktop/database.sqlite
and also insert the primary master key data into table ‘settings’ -> field ‘syncInfoCache’; - Restart your secondary Joplin, and it will download your notes and use the right master key. No more yellow warning banners in the apps.