Apple devices do not sync contacts

Issue Description

Ways it works:

Create the contacts on the apple devices and ONLY edit on the apple devices = everything okay.

HOWEVER

If you then update the avatars using Android with Google Contacts and sync them with dav5x, contacts will no longer update on ANY apple device. I have verified this on the iPhone, iPad, and Mac.

Yet, the contacts DO sync with the server itself. Because roundcube can correctly see the new avatars :S

Expected Behavior

.

Actual Behavior

.

Relevant Log Output

.

Stalwart Version

v0.16.x

Installation Method

Binary (Linux)

Database Backend

PostgreSQL

Blob Storage

PostgreSQL

Search Engine

PostgreSQL

Directory Backend

Internal

Additional Context

.

I have reviewed the documentation and FAQ and confirm that my issue is NOT addressed there.

on

I have searched this support forum (open and closed topics) and confirm this is not a duplicate.

on

I understand that topics in this category are triaged by a bot first but a human reply will follow up. If I’d prefer a human-only reply, I’ll add the no-ai tag to my topic.

on

Since Roundcube shows the updated avatar, the server has the change stored correctly, so what’s happening is that the Apple clients stop reflecting updates for that specific card once it’s been edited from Android/DAVx5. That points to something in the payload Apple receives that makes it drop the card. To chase it I need the exact vCard as served to Apple for one affected contact (GET the .vcf plus its getetag), and if you can, whether Apple’s sync-collection REPORT returns a new getetag for that card but drops the body.

This is almost certainly the same underlying thing as your iPad avatar report, so let’s track them together. The likely trigger is how the Google/Android-written PHOTO serialises for an Apple client; one specific thing I want to check is whether our v3 output is missing the TYPE= parameter on the photo. The served .vcf will show it.