It was already reported in a couple of places and different client software:
- EmCLient: https://issues.kolab.org/show_bug.cgi?id=5427
- DavDroid: https://forums.bitfire.at/topic/1360/kolabnow-sync-fails-when-changing-notes-field/2
According to DavDroid devs it is not required by standards. So, we should investigate that.
Current code in Kolab/CardDAV/ContactsBackend.php (and CalendarBackend.php) is:
// sanity check if ($object['uid'] != $uid) { rcube::raise_error(array( 'code' => 600, 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, 'message' => "Error creating contact object: UID doesn't match object URI"), true, false); throw new DAV\Exception\NotFound("UID doesn't match object URI"); }
we should test what happens if we just replace this code block with:
$uid = $object['uid'];
Maybe we'd need to check if uid is not empty and store the original URI in some custom X-property or sth.