After comparing with a working Xperia X (same SFOS version), the calendardataservice warning it’s still there, but the jolla-contacts one isn’t, the full output is:
jolla-contacts[13705]: Unable to load account 75
jolla-contacts[13705]: Unable to load account 75
jolla-contacts[13705]: Unable to load account 75
jolla-contacts[13705]: Unable to load account 75
jolla-contacts[13705]: [W] unknown:0 - Account: setAccount() called with null account! Aborting operation.
jolla-contacts[13705]: Unable to load account 75
jolla-contacts[13705]: Unable to load account 75
jolla-contacts[13705]: Unable to load account 75
jolla-contacts[13705]: Unable to load account 75
jolla-contacts[13705]: [W] unknown:0 - Account: setAccount() called with null account! Aborting operation.
I also tried re-importing the data again a couple of times, and I get a lot of these in the logs:
[W] unknown:0 - not loading "com.nokia.birthday/0" "b1376da7-5555-1111-2222-227549c4e570" (local changes)
I tried deleting the Nextcloud account but with similar results.
UPDATE
OK, I spent some time troubleshooting this, there are some weird things that I noticed, but I don’t know why they happen:
- If you delete all contacts via Settings->Apps->Contacts->Delete all contacts, you can still observe that there are birthday records in
/home/defaultuser/.local/share/system/privileged/Calendar/mkcal/db
and that not all the contact information is gone from /home/defaultuser/.local/share/system/privileged/Contacts/qtcontacts-sqlite/contacts.db
- If you delete all your contacts, including completely nuking the DB’s aforementioned (stopping/starting
contactsd
and closing all apps); then create two local test contacts, only one persists in the mkcal database - I suspect that the CREATE UNIQUE INDEX IDX_COMPONENT_UID on Components(UID, RecurId, DateDeleted);
is being violated, according to log entries (see above).
Eventually, I thought I would try a more pragmatic approach: I replaced the mkcal db in the XA2 with the working db in the X, now all my birthdays show, my Nextcloud syncs both ways, it all appears to be happiness.
However, this is only temporary, since any new contact I add appears to violate said constraint, in particular these set of values: 'urn:x-ical:com.nokia.birthday/0','com.nokia.birthday/0'
That /0
appears to be an auto incremeted number, which in the restored db is happily distinct, but doesn’t work for new records.
This may be a problem on other devices, as I have tried to enter 2 test contacts in the Xx and Jolla C with the same problem: only one persists.
@jovirkku, I know you’re busy, but is there any chance that you could help us figure this out? The test case should be quite simple, but the prep contains some overhead:
- Start from a flashed device on XA or X or Jolla C
- Create 2 test contacts with different birthdays
- Observe whether both contacts now appear in the calendar
- If you have CLI and are comfortable with
sqlite
, check the mkcal db I mentioned before. You shoulld be able to observe only one birthday record that changes as you edit+save either contact
@Thefriendlyfiend, could you please alter the OP with the following?
- sfos version 4.0.1.48
- affected devices Xperia X, Xperia XA2, Jolla C
@jovirkku, actually, there may be a much easier way to reproduce this, as I have on my Xx and Jolla C, which I haven’t flashed recently and come from SFOS 3:
- Create a local contact “Test Test23” with birthday 2021-03-23
- Create another local contact “Test Test24” with birthday 2021-03-24
- Check your calendar and confirm that only Test Test24 has its birthday in there, not Test Test23
I tested this in a Jolla 1 and it works, so I suspect that this is a regression.
Thanks!