[4.0.1.45] Birthdays don't show up in calender and feed/events

REPRODUCIBILITY (% or how often): 100%
BUILD ID = OS VERSION (Settings > About product): 4.0.1.45
HARDWARE (Jolla1, Tablet, XA2,…): Xperia XA2
UI LANGUAGE: Dutch
REGRESSION: (compared to previous public release: Yes, No, ?): Yes

DESCRIPTION:

Birthdays (from contacts) don’t show up anymore in Calendar and eventview

PRECONDITIONS:

STEPS TO REPRODUCE:

  1. Open contacts, scroll to dates, birthdays, for ex. today 7-2-2021
  2. In calender app birthdays have color orange, its highlighted so it must work.
  3. In calender no birthdays show up and also not in eventsview…

EXPECTED RESULT:

Birthday show up in calender the whole day.

ACTUAL RESULT:

Nothing pops up in the calender or eventview

ADDITIONAL INFORMATION:

I tried once to change the birthday of 1 contact and change it back to actual birthday, saved it. Then it showed up. But when i close the calender app, it dissapears again…

(Please ALWAYS attach relevant data such as logs, screenshots, etc…)

3 Likes

Thanks for the post; we have filed a bug report for this.

@Thefriendlyfiend: Have you synced your accounts after the OS update was completed?
Please try now. Did it help to bring the birthdays back to the calendar.

  • We have not been able to reproduce this problem.

I cannot confirm this problem. However, I only have local contacts - no syncing, only manually coying vcf/icf data between devices

Hi Jovirkku,

Thanks for replying. No, i didn’t synced after the OS update, because i only have local contacts. I make a backup for every update, and i flashed my phone during the last update (because of some problems). So the contacts come straight from the backup (with all the data included like birthdays)

Strange behaviour is that when i modify a contacts birthday-date to, let’s say 6 tot 7 december and then set it back to 6 and save, the birthday is shown in calendar and feed. But when I close the calender it immediatly removes the birthday from calendar.

I tried adding a new fake contact with a fake birthday and, voilá, its still there :slight_smile:

Is there an ‘easy’ solution or do I have to remove all the contacts and manually add each one of them to the people app?

i can see birzhdays of my contacts in evenzs… all are synced with nextcoud

1 Like

I have the same problem. My accounts are synced via CardDAV. When I add a new contact I can see the birthday but not for the existing ones.

I have the same issue:

  • Brand new XA2 flash
  • Lifted+shifted contacts from Xx -> no birthdays
  • Deleted all contacts, copied them via vcf (Sailfish share option) -> no birthdays
  • Edited a random contact card, didn’t change anything, swiped right-to-left to save -> that particular one appeared and persisted after closing/opening Calendar
    UPDATE: with the method above only the last contact that you edit appears in the calendar, so I wonder what else you have to do to make them stick there forever…

All my contacts are local, I do have a Nextcloud account which sync’s contacts from the device, but it does a very bad job at it, as it syncs only a few (this is a separate issue that concerns me very little so I’ve never bothered to investigate).

I can’t see much in the journal - is there anything else I could do to debug/help? I would be interested in a way to mimic the open+save method for every contact from the CLI, if brute force is the ultimate solution to this.

1 Like

OK, there are a couple of things that I don’t think are supposed to be there in the logs:

jolla-contacts[13705]: [W] unknown:0 - Account: setAccount() called with null account! Aborting operation. 
dbus-daemon[5001]: dbus-daemon[5001]: [session uid=100000 pid=5001] Successfully activated service 'org.nemomobile.calendardataservice'
calendardataservice[13940]: [W] unknown:0 - No transactionId, discarding results

Any ideas?

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:

  1. Start from a flashed device on XA or X or Jolla C
  2. Create 2 test contacts with different birthdays
  3. Observe whether both contacts now appear in the calendar
  4. 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:

  1. Create a local contact “Test Test23” with birthday 2021-03-23
  2. Create another local contact “Test Test24” with birthday 2021-03-24
  3. 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!

1 Like

I can confirm the same problem on XA2 plus dual-sim on 4.0.1.48.
No synced contacts, only ones imported from backup from before update.
(I had some troubles updating from 3.4 so I ended up reflashing the device)

Hi.

Same problem here.
BDays are no longer shown upon syncing contacts from my CALDav/CARDav server.
Device is a completely reflashed Xpera X.
Best Regards.

EDIT: @gabrielg
I can confirm the test case you proposed with a newly flashed device (in my case an Xperia X):
Whenever you edit (and sync) a contact, it’s birthday date is correctly shown …but the rest birthdays are not shown.

Thanks, @pasko - and a bit of a bump here? Any news/ACK from Jolla? It would be nice to know if this is happening to some of us or the simple test case I mentioned above can also be reproduced by others.

Yep.

I hope this regression is addressed in the next release (4.1). I think the contactsd app is screwed.

Best regards.

Thanks for the investigations and suggestions. We need to fix this.

1 Like

Thanks for the investigations! I believe this should be now fixed with these changes: https://git.sailfishos.org/mer-core/contactsd/merge_requests/19

3 Likes