{"action":"created","issue":{"url":"https://api.github.com/repos/nextcloud/contacts/issues/46","repository_url":"https://api.github.com/repos/nextcloud/contacts","labels_url":"https://api.github.com/repos/nextcloud/contacts/issues/46/labels{/name}","comments_url":"https://api.github.com/repos/nextcloud/contacts/issues/46/comments","events_url":"https://api.github.com/repos/nextcloud/contacts/issues/46/events","html_url":"https://github.com/nextcloud/contacts/issues/46","id":193033513,"number":46,"title":"Unsupported media type vcard","user":{"login":"Happyfeet01","id":3295104,"avatar_url":"https://avatars.githubusercontent.com/u/3295104?v=3","gravatar_id":"","url":"https://api.github.com/users/Happyfeet01","html_url":"https://github.com/Happyfeet01","followers_url":"https://api.github.com/users/Happyfeet01/followers","following_url":"https://api.github.com/users/Happyfeet01/following{/other_user}","gists_url":"https://api.github.com/users/Happyfeet01/gists{/gist_id}","starred_url":"https://api.github.com/users/Happyfeet01/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Happyfeet01/subscriptions","organizations_url":"https://api.github.com/users/Happyfeet01/orgs","repos_url":"https://api.github.com/users/Happyfeet01/repos","events_url":"https://api.github.com/users/Happyfeet01/events{/privacy}","received_events_url":"https://api.github.com/users/Happyfeet01/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2016-12-02T04:46:10Z","updated_at":"2016-12-20T12:53:48Z","closed_at":null,"body":"Since I upgraded to nextcloud 11 beta 2 I can't sync my contacts because of this error:\r\n```\r\nSabre\\DAV\\Exception\\UnsupportedMediaType: HTTP/1.1 415 Validation error in vCard: REV MUST NOT appear more than once in a VCARD component\r\n```\r\n\r\n### Steps to reproduce\r\n1. Update from NC 10 to NC 11 beta 2\r\n2. Install Android davdroid client and set it up \r\n3.try to sync \r\n\r\n### Expected behaviour\r\n\r\n\r\n### Actual behaviour\r\nCan not sync \r\n\r\n### Server configuration\r\n**Operating system**:\r\nUbuntu 16.04\r\n**Web server:**\r\nApache \r\n**Database:**\r\nMysql \r\n**PHP version:**\r\n7.0.13\r\n**Nextcloud version:** (see Nextcloud admin page)\r\n\r\n**Contacts version:** (see Nextcloud apps page)\r\n1.5.2\r\n**Updated from an older Nextcloud or fresh install:**\r\nupdated \r\n**Signing status:**\r\n\r\n```\r\nDisabled because of modified ca-bundle.crt \r\n\r\n```\r\n\r\n**List of activated apps:**\r\n\r\n```\r\nEnabled:\r\n  - activity: 2.4.1\r\n  - admin_audit: 1.1.0\r\n  - bookmarks: 0.9.0\r\n  - calendar: 1.4.1\r\n  - comments: 1.1.0\r\n  - contacts: 1.5.2\r\n  - dav: 1.1.1\r\n  - direct_menu: 0.9.3\r\n  - federatedfilesharing: 1.1.1\r\n  - federation: 1.1.1\r\n  - files: 1.6.1\r\n  - files_accesscontrol: 1.1.2\r\n  - files_external: 1.1.2\r\n  - files_pdfviewer: 1.0.1\r\n  - files_sharing: 1.1.1\r\n  - files_trashbin: 1.1.0\r\n  - files_versions: 1.4.0\r\n  - files_videoplayer: 1.0.0\r\n  - firstrunwizard: 2.0\r\n  - gallery: 16.0.0\r\n  - logreader: 1.3.1\r\n  - lookup_server_connector: 1.0.0\r\n  - news: 10.0.0\r\n  - nextcloud_announcements: 1.0\r\n  - notes: 2.0.2\r\n  - notifications: 1.0.1\r\n  - ocdownloader: 1.5\r\n  - password_policy: 1.1.0\r\n  - passwords: 19\r\n  - provisioning_api: 1.1.0\r\n  - rainloop: true\r\n  - richdocuments: 1.1.14\r\n  - serverinfo: 1.1.1\r\n  - sharebymail: 1.0.0\r\n  - survey_client: 0.1.5\r\n  - systemtags: 1.1.3\r\n  - tasks: 0.9.3\r\n  - theming: 1.1.1\r\n  - twofactor_backupcodes: 1.0.0\r\n  - updatenotification: 1.1.1\r\n  - weather: 1.3.3\r\n  - workflowengine: 1.1.1\r\nDisabled:\r\n  - encryption\r\n  - external\r\n  - fbsync\r\n  - files_automatedtagging\r\n  - files_retention\r\n  - files_texteditor\r\n  - mail\r\n  - music\r\n  - templateeditor\r\n  - user_external\r\n  - user_ldap\r\n  - user_saml\r\n```\r\n\r\n**The content of config/config.php:**\r\n\r\n```\r\n{\r\n    \"system\": {\r\n        \"instanceid\": \"oc5ly9kwuaz5\",\r\n        \"passwordsalt\": \"***REMOVED SENSITIVE VALUE***\",\r\n        \"secret\": \"***REMOVED SENSITIVE VALUE***\",\r\n        \"trusted_domains\": [\r\n            \"cloud.land-laeufer.de\"\r\n        ],\r\n        \"datadirectory\": \"\\/var\\/www\\/vhosts\\/land-laeufer.de\\/cloud.land-laeufer.de\\/data\",\r\n        \"overwrite.cli.url\": \"https:\\/\\/cloud.land-laeufer.de\",\r\n        \"dbtype\": \"mysql\",\r\n        \"version\": \"11.0.0.5\",\r\n        \"dbname\": \"nextcloud\",\r\n        \"dbhost\": \"localhost\",\r\n        \"dbport\": \"\",\r\n        \"dbtableprefix\": \"oc_\",\r\n        \"dbuser\": \"***REMOVED SENSITIVE VALUE***\",\r\n        \"dbpassword\": \"***REMOVED SENSITIVE VALUE***\",\r\n        \"logtimezone\": \"Europe\\/Berlin\",\r\n        \"installed\": true,\r\n        \"maintenance\": false,\r\n        \"filelocking.enabled\": \"true\",\r\n        \"memcache.locking\": \"\\\\OC\\\\Memcache\\\\Redis\",\r\n        \"memcache.local\": \"\\\\OC\\\\Memcache\\\\APCu\",\r\n        \"file locking. enabled\": \"true\",\r\n        \"redis\": {\r\n            \"host\": \"localhost\",\r\n            \"port\": 6379\r\n        },\r\n        \"loglevel\": 3,\r\n        \"appstore.experimental.enabled\": true,\r\n        \"updater.release.channel\": \"daily\",\r\n        \"mail_domain\": \"land-laeufer.de\",\r\n        \"mail_smtpmode\": \"php\",\r\n        \"mail_from_address\": \"nextcloud\",\r\n        \"theme\": \"\",\r\n        \"integrity.check.disabled\": true\r\n    }\r\n}\r\n```\r\n\r\n**Are you using external storage, if yes which one:** local/smb/sftp/...\r\nNo\r\n**Are you using encryption:** yes/no.\r\nNo\r\n### Client configuration\r\n**Browser:** \r\nChrome Browser \r\n**Operating system:**\r\nUbuntu 16.04\r\n**CardDAV-clients:**\r\nDavdroid Android \r\n### Logs\r\n#### Web server error log\r\n```\r\nInsert your webserver log here\r\n```\r\n\r\n#### Nextcloud log (data/nextcloud.log)\r\n```\r\nSabre\\DAV\\Exception\\UnsupportedMediaType: HTTP/1.1 415 Validation error in vCard: REV MUST NOT appear more than once in a VCARD component\r\n```\r\n\r\n#### davdroid Android og\r\n```\r\nSYNCHRONIZATION INFO\r\nSynchronization phase: 4\r\nAccount name: lars@land-laeufer.de\r\nAuthority: com.android.contacts\r\n\r\nHTTP REQUEST:\r\nPUT /remote.php/dav/addressbooks/users/lars/Kontakte%20Telefon/e3c28fd9-2291-45fa-a4ec-8fabfe7607af.vcf\r\nIf-Match: \"51ee05ba3c014f132cb390cad2c41770\"\r\n\r\nBEGIN:VCARD[CR][LF]\r\nVERSION:4.0[CR][LF]\r\nPRODID:+//IDN bitfire.at//DAVdroid/1.3.4.1-gplay vcard4android ez-vcard/0.1[CR][LF]\r\n 0.0[CR][LF]\r\nREV;VALUE=timestamp:2016-11-20T12:16:49.095Z[CR][LF]\r\ndavdroid1.X-ABLabel:Internet[CR][LF]\r\ndavdroid2.X-ABLabel:PROFILE[CR][LF]\r\nUID:e3c28fd9-2291-45fa-a4ec-8fabfe7607af[CR][LF]\r\nFN:Anja Krah[CR][LF]\r\nN:Krah;Anja;;;[CR][LF]\r\nTEL;TYPE=cell:01732387670[CR][LF]\r\ndavdroid1.EMAIL;TYPE=x-internet:xxxxx@gmail.com[CR][LF]\r\ndavdroid2.URL;TYPE=X-PROFILE:http://www.google.com/xda /104183916085464[CR][LF]\r\n 189577[CR][LF]\r\nBDAY:19780705[CR][LF]\r\nPHOTO:data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBw[CR][LF]\r\n [LF]\r\n[some entry's more but removed]] \r\n CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9k=[CR][LF]\r\nREV:20161202T045318Z[CR][LF]\r\nEND:VCARD[CR][LF]\r\n\r\n\r\nHTTP RESPONSE:\r\nh2 415 \r\ncache-control: no-store, no-cache, must-revalidate\r\ncontent-security-policy: default-src 'none';\r\ncontent-type: application/xml; charset=utf-8\r\ndate: Fri, 02 Dec 2016 04:53:56 GMT\r\nexpires: Thu, 19 Nov 1981 08:52:00 GMT\r\nms-author-via: DAV\r\npragma: no-cache\r\nserver: nginx\r\nset-cookie: nc_username=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly\r\nset-cookie: nc_token=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly\r\nset-cookie: nc_session_id=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; secure; HttpOnly\r\nset-cookie: nc_username=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly\r\nset-cookie: nc_token=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly\r\nset-cookie: nc_session_id=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; secure; HttpOnly\r\nset-cookie: oc5ly9kwuaz5=cpekvjtm3i27acahd4b2a4eqg1; path=/; secure; HttpOnly\r\nx-content-type-options: nosniff\r\nx-download-options: noopen\r\nx-frame-options: SAMEORIGIN\r\nx-permitted-cross-domain-policies: none\r\nx-powered-by: PHP/7.0.13\r\nx-powered-by: PleskLin\r\nx-robots-tag: none\r\nx-xss-protection: 1; mode=block\r\n\r\n<?xml version=\"1.0\" encoding=\"utf-8\"?>[LF]\r\n<d:error xmlns:d=\"DAV:\" xmlns:s=\"http://sabredav.org/ns\">[LF]\r\n  <s:exception>Sabre\\DAV\\Exception\\UnsupportedMediaType</s:exception>[LF]\r\n  <s:message>Validation error in vCard: REV MUST NOT appear more than once in a VCARD component</s:message>[LF]\r\n</d:error>[LF]\r\n\r\n\r\nEXCEPTION:\r\nat.bitfire.dav4android.exception.HttpException: 415 \r\n\tat at.bitfire.dav4android.DavResource.checkStatus(DavResource.java:318)\r\n\tat at.bitfire.dav4android.DavResource.checkStatus(DavResource.java:291)\r\n\tat at.bitfire.dav4android.DavResource.put(DavResource.java:202)\r\n\tat at.bitfire.davdroid.syncadapter.SyncManager.uploadDirty(SyncManager.java:317)\r\n\tat at.bitfire.davdroid.syncadapter.SyncManager.performSync(SyncManager.java:147)\r\n\tat at.bitfire.davdroid.syncadapter.ContactsSyncAdapterService$ContactsSyncAdapter.sync(ContactsSyncAdapterService.java:64)\r\n\tat at.bitfire.davdroid.syncadapter.SyncAdapterService$SyncAdapter.onPerformSync(SyncAdapterService.java:85)\r\n\tat android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java)\r\n\r\nSOFTWARE INFORMATION\r\nPackage: at.bitfire.davdroid\r\nVersion: 1.3.4.1-gplay (129) Mon Nov 14 19:39:42 GMT+01:00 2016\r\nInstalled from: com.google.android.feedback\r\nJB Workaround installed: no\r\n\r\nCONFIGURATION\r\nSystem-wide synchronization: automatically\r\nAccount: lars@land-laeufer.de\r\n  Address book sync. interval: 240 min\r\n  Calendar     sync. interval: 240 min\r\n  OpenTasks    sync. interval: 240 min\r\n  WiFi only: false\r\n  [CardDAV] Contact group method: CATEGORIES\r\n  [CalDAV] Time range (past days): 90\r\n           Manage calendar colors: true\r\n\r\nSQLITE DUMP\r\nandroid_metadata\r\n\t|  locale |\r\n\t|  de_DE |\r\n----------\r\nsettings\r\n\t|  setting | value |\r\n----------\r\nservices\r\n\t|  _id | accountName | service | principal |\r\n\t|  5 | lars@domain.de | carddav | https://cloud.domain. de/remote.php/dav/principals/users/lars/ |\r\n\t|  6 | lars@domain.de | caldav | https://cloud.domain.de/remote.php/dav/principals/users/lars/ |\r\n----------\r\nsqlite_sequence\r\n\t|  name | seq |\r\n\t|  services | 6 |\r\n\t|  homesets | 9 |\r\n\t|  collections | 33 |\r\n----------\r\nhomesets\r\n\t|  _id | serviceID | url |\r\n\t|  8 | 6 | https://cloud.domain.de/remote.php/dav/calendars/lars/ |\r\n\t|  9 | 5 | https://cloud.domain.de/remote.php/dav/addressbooks/users/lars/ |\r\n----------\r\ncollections\r\n\t|  _id | serviceID | url | readOnly | displayName | description | color | timezone | supportsVEVENT | supportsVTODO | sync |\r\n\t|  26 | 6 | https://://cloud.domain.de/remote.php/dav/calendars/lars/contact_birthdays/ | 1 | Geburtstage von Kontakten | <null> | -54 | <null> | 1 | 0 | 0 |\r\n\t|  27 | 6 | https://cloud.domain.de/remote.php/dav/calendars/lars/ist-stunden-arbeit/ | 0 | Ist-stunden Arbeit | <null> | -9115694 | <null> | 1 | 1 | 1 |\r\n\t|  28 | 6 | https://cloud.domain.de/remote.php/dav/calendars/lars/muell/ | 0 | Muell | <null> | -9139225 | <null> | 1 | 1 | 1 |\r\n\t|  29 | 6 | https://cloud.domain.de/remote.php/dav/calendars/lars/veranstaltungen/ | 0 | Veranstaltungen | <null> | -9122585 | <null> | 1 | 1 | 1 |\r\n\t|  30 | 6 | https://cloud.domain.de/remote.php/dav/calendars/lars/arbeit/ | 0 | Arbeit | <null> | -1605516 | <null> | 1 | 1 | 1 |\r\n\t|  31 | 6 | https://cloud.domain.de/remote.php/dav/calendars/lars/priavtes/ | 0 | Privates | <null> | -8853644 | <null> | 1 | 1 | 1 |\r\n\t|  32 | 6 | https://cloud.domain.de/remote.php/dav/calendars/lars/arbeit-anja/ | 0 | Arbeit anja | <null> | -9139225 | <null> | 1 | 1 | 1 |\r\n\t|  33 | 5 | https://cloud.cloud.domain.de/remote.php/dav/addressbooks/users/lars/Kontakte%20Telefon/ | 0 | Kontakte Telefon | <null> | <null> | <null> | <null> | <null> | 1 |\r\n----------\r\n\r\nSYSTEM INFORMATION\r\nAndroid version: 6.0.1 (23.5.A.1.291)\r\nDevice: Sony D6603 (D6603)\r\n\r\n\r\n```\r\n"},"comment":{"url":"https://api.github.com/repos/nextcloud/contacts/issues/comments/268236140","html_url":"https://github.com/nextcloud/contacts/issues/46#issuecomment-268236140","issue_url":"https://api.github.com/repos/nextcloud/contacts/issues/46","id":268236140,"user":{"login":"rfc2822","id":156167,"avatar_url":"https://avatars.githubusercontent.com/u/156167?v=3","gravatar_id":"","url":"https://api.github.com/users/rfc2822","html_url":"https://github.com/rfc2822","followers_url":"https://api.github.com/users/rfc2822/followers","following_url":"https://api.github.com/users/rfc2822/following{/other_user}","gists_url":"https://api.github.com/users/rfc2822/gists{/gist_id}","starred_url":"https://api.github.com/users/rfc2822/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rfc2822/subscriptions","organizations_url":"https://api.github.com/users/rfc2822/orgs","repos_url":"https://api.github.com/users/rfc2822/repos","events_url":"https://api.github.com/users/rfc2822/events{/privacy}","received_events_url":"https://api.github.com/users/rfc2822/received_events","type":"User","site_admin":false},"created_at":"2016-12-20T12:53:48Z","updated_at":"2016-12-20T12:53:48Z","body":"See #41"}}
{"actor":{"display_login":"rfc2822"}}