Sailfish keeps on duplicating contacts to Nextcloud

Since a few weeks my phone (XA2+, SFOS duplicates contacts, newly created on the phone, on my Nextcloud account. On the phone those contacts are fine, however there are now hundreds of entries of each of those contacts.

After activated extensive logging I see plenty of 412-Errors:

 unknown:0 - CardDAV sync for account:  22  finished with error: 412
[W] unknown:0 - QMetaObject::invokeMethod: No such method Syncer::syncFinishedWithError()
[W] unknown:0 - void CardDav::upsyncResponse() error: QNetworkReply::NetworkError(UnknownContentError) ( 412 )
[D] unknown:0 - "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
[D] unknown:0 - "<d:error xmlns:d=\"DAV:\" xmlns:s=\"\">"
[D] unknown:0 - "  <s:exception>Sabre\\DAV\\Exception\\PreconditionFailed</s:exception>"
[D] unknown:0 - "  <s:message>An If-Match header was specified and the resource did not exist</s:message>"
[D] unknown:0 - "  <s:header>If-Match</s:header>"
[D] unknown:0 - "</d:error>"

and plenty of those messages:

[D] unknown:0 -     "Content-Length" = "0"
[D] unknown:0 -     "If-Match" = "\"ca9c2698dce68348858b130585a3e89d\""
[D] unknown:0 - void NotebookSyncAgent::finalize() "22"
[D] unknown:0 - bool NotebookSyncAgent::applyRemoteChanges() "22"
[D] unknown:0 - generateUpsyncRequest(): "" QUrl("https://<myuser>@<mydomain>/remote.php/dav/addressbooks/users/<myuser>/contacts/9813ff2fbd9a46bba50b539d16505d5b.vcf") "DELETE" : 0 bytes

It shows that there’s something wrong and with each new sync I get 8 new entries.
Do you have any idea to hunt for the source of the problem?