Contacts lose favorite status during synchronization

When my XA2 syncs contacts, some contacts lose favorite marking. I can’t find an entry in the VCF files that governs this status. Is it possible to mark specific contacts as favorites using the CLI?

The contacts on the phone are not stored in VCF format.
And I doubt they are synced in that format, either.

I had a look at a recent VCF dump, I see no field that would store favorite status.

I’m pretty sure that it’s stored on the phone only.

Or do you mean they lose favorite marking on the same device, after a sync?

Or do you mean they lose favorite marking on the same device, after a sync?

Yes, after synchronization, the contacts that are updated to the phone lose their favorite marking.

I’m pretty sure that it’s stored on the phone only.

How to save the contacts on the phone as favorites?
Would it be possible to create a script that saves this favorite flag to a file and marks it as a favorite again after synchronization?

I can actually reproduce that.

Added a new contact, told the account settings to sync (manually) => favourites are gone.

Checking journalctl -f during that time produces many warnings & errors, but none of them seem clearly related. The syncing works though.

Where do you sync from and how?

I will now wait until the phone syncs automatically (30min), if the effect is the same.

journalctl -f
10:19:34 XA2 buteo-oopp-runner[6777]: [W] unknown:0 - The 'mergePresenceChanges' option has not been configured - presence changes will only be reported via ContactManagerEngine::contactsPresenceChanged()
10:19:34 XA2 dbus-daemon[4802]: dbus-daemon[4802]: [session uid=100000 pid=4802] Activating service name='com.google.code.AccountsSSO.SingleSignOn' requested by ':1.78' (uid=100000 pid=6777 comm="/usr/libexec/buteo-oopp-runner carddav carddav.Con")
10:19:34 XA2 invoker[4842]: SailfishKeyProvider_storedKey(): error: no scheme or key found for provider/service
10:19:34 XA2 invoker[4842]: SailfishKeyProvider_storedKey(): error: no scheme or key found for provider/service
10:19:34 XA2 invoker[4842]: SailfishKeyProvider_storedKey(): error: no scheme or key found for provider/service
10:19:34 XA2 invoker[4842]: SailfishKeyProvider_storedKey(): error: no scheme or key found for provider/service
10:19:34 XA2 dbus-daemon[4802]: dbus-daemon[4802]: [session uid=100000 pid=4802] Successfully activated service 'com.google.code.AccountsSSO.SingleSignOn'
10:19:34 XA2 dbus-daemon[2225]: [system] Activating via systemd: service name='org.pacrunner' unit='dbus-org.pacrunner.service' requested by ':1.193' (uid=100000 pid=6777 comm="/usr/libexec/buteo-oopp-runner carddav carddav.Con")
10:19:34 XA2 dbus-daemon[2225]: dbus-daemon[2225]: [system] Activating via systemd: service name='org.pacrunner' unit='dbus-org.pacrunner.service' requested by ':1.193' (uid=100000 pid=6777 comm="/usr/libexec/buteo-oopp-runner carddav carddav.Con")
10:19:34 XA2 systemd[1]: Starting Pacrunner service...
10:19:34 XA2 dbus-daemon[2225]: [system] Successfully activated service 'org.pacrunner'
10:19:34 XA2 dbus-daemon[2225]: dbus-daemon[2225]: [system] Successfully activated service 'org.pacrunner'
10:19:34 XA2 systemd[1]: Started Pacrunner service.
10:19:34 XA2 audit[1]: SERVICE_START pid=1 uid=0 auid=1234567890 ses=1234567890 msg='unit=dbus-org.pacrunner comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
10:19:34 XA2 pacrunner[6837]: pacrunner[6837]: PAC Runner version 0.18
10:19:34 XA2 pacrunner[6837]: PAC Runner version 0.18
10:19:35 XA2 buteo-oopp-runner[6810]: [W] unknown:0 - Cannot find the calendar root for this user, guess it from account.
10:19:37 XA2 buteo-oopp-runner[6777]: [W] unknown:0 - No updated etag provided for "15:AB:/caldav.php/some_user/addresses/:aaaaaaaa-9999-cccc-dddd-123456789000" : will be reported as spurious remote modification next sync
10:19:37 XA2 dbus-daemon[4802]: dbus-daemon[4802]: [session uid=100000 pid=4802] Activating service name='org.nemomobile.calendardataservice' requested by ':1.18' (uid=100000 pid=4864 comm="/usr/bin/lipstick -plugin evdevtouch -plugin evdev")
10:19:38 XA2 dbus-daemon[4802]: dbus-daemon[4802]: [session uid=100000 pid=4802] Successfully activated service 'org.nemomobile.calendardataservice'
10:19:38 XA2 calendardataservice[6919]: [D] unknown:0 - Messaging :  opening database
10:19:38 XA2 calendardataservice[6919]: [D] unknown:0 - Default plugin: account "15" do not have a valid email address
10:19:38 XA2 calendardataservice[6919]: [W] unknown:0 - Default account was not found!
10:19:38 XA2 buteo-oopp-runner[6777]: [W] unknown:0 - No updated etag provided for "15:AB:/caldav.php/some_user/addresses/:aaaaaaaa-9999-cccc-dddd-1234567890ab" : will be reported as spurious remote modification next sync
10:19:38 XA2 calendardataservice[6919]: [W] unknown:0 - No transactionId, discarding results
10:19:38 XA2 [5290]: [W] unknown:0 - CDExport: triggering contacts remote sync: ("onlinesync")
10:19:39 XA2 calendardataservice[6919]: [W] unknown:0 - No transactionId, discarding results
10:19:39 XA2 calendardataservice[6919]: [W] unknown:0 - No transactionId, discarding results

Yep. Also happens after automatic sync.

I use https://radicale.org/v3.html
Radicale is a small but powerful CalDAV (calendars, to-do lists) and CardDAV (contacts)

Same here, at least since i have shifted to mailbox.org.
But as i did stop to sync ages ago due to duplication of contacts in nextcloud, could be even longer

Can you file a bug report ?

I have to apologise, I was wrong. If I export all addresses from my phone, the favorites contain the field X-QTPROJECT-FAVORITE:true;0.

After syncing, this field is not present when I export the addresses directly from my CalDAV/CardDAV server (DaviCal).
Weirdly, other X-QTPROJECT-* fields do show up.

I am currently unsure where the fault lies, so I would hold off on the bug report.

Now I have added the X-QTPROJECT-FAVORITE field to the Thunderbird address book.
The sync works, the value for the favorites is still incorrect because the value true;0 is transferred as true\;0

Does anyone have an idea how I could solve this?

Is the value for favorites a bug and could it be changed to just true instead of true;0?