Google CardDAV: Received GET response without ETag



  • I have a android 8 device, with no Google services, no Google Play, nothing. I use Davx5 to sync contact from gmail account but I have a problem that the sync only work if I do it manually. If I create a contact in chrome in 15 minutes, I will have and error in my device. This error (is in spanish sorry):

    alt text

    And the log is this:

    --- BEGIN DEBUG INFO ---
    Account name: Address Book (irunlogitrans@gmail.com RQ)
    Authority: com.android.contacts
    
    REMOTE RESOURCE:
    https://www.googleapis.com/carddav/v1/principals/irunlogitrans@gmail.com/lists/default/897f67d0f082d9b
    
    EXCEPTION:
    at.bitfire.dav4jvm.exception.DavException: Received CardDAV GET response without ETag
    	at at.bitfire.davdroid.syncadapter.ContactsSyncManager$downloadRemote$1$1.invoke(ContactsSyncManager.kt:281)
    	at at.bitfire.davdroid.syncadapter.ContactsSyncManager$downloadRemote$1$1.invoke(ContactsSyncManager.kt:75)
    	at at.bitfire.dav4jvm.DavResource.get(DavResource.kt:211)
    	at at.bitfire.davdroid.syncadapter.ContactsSyncManager$downloadRemote$1.invoke(ContactsSyncManager.kt:278)
    	at at.bitfire.davdroid.syncadapter.ContactsSyncManager$downloadRemote$1.invoke(ContactsSyncManager.kt:75)
    	at at.bitfire.davdroid.syncadapter.SyncManager.useRemote(SyncManager.kt:809)
    	at at.bitfire.davdroid.syncadapter.ContactsSyncManager.downloadRemote(ContactsSyncManager.kt:277)
    	at at.bitfire.davdroid.syncadapter.SyncManager$syncRemote$1$1.run(SyncManager.kt:451)
    	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    	at java.lang.Thread.run(Thread.java:764)
    
    SOFTWARE INFORMATION
    * at.bitfire.davdroid 2.4.1-beta1-gplay (283) from com.android.packageinstaller
    * com.android.providers.contacts 8.1.0 (27)
    * com.android.providers.calendar 8.1.0 (27)
    * com.android.contacts 1.7.10 (10710)
    * com.android.calendar 8.1.0 (27)
    * com.android.browser 8.1.0 (27)
    
    CONNECTIVITY (at the moment)
    Active connection: WiFi, CONNECTED
    
    CONFIGURATION
    Power saving disabled: no
    android.permission.READ_CONTACTS: granted
    android.permission.WRITE_CONTACTS: granted
    android.permission.READ_CALENDAR: granted
    android.permission.WRITE_CALENDAR: granted
    org.dmfs.permission.READ_TASKS: denied
    org.dmfs.permission.WRITE_TASKS: denied
    android.permission.ACCESS_COARSE_LOCATION: granted
    System-wide synchronization: automatically
    Account: irunlogitrans@gmail.com
      Address book sync. interval: 15 min
      Calendar     sync. interval: —
      OpenTasks    sync. interval: —
      WiFi only: false
      [CardDAV] Contact group method: GROUP_VCARDS
      [CalDAV] Time range (past days): 90
               Manage calendar colors: true
               Use event colors: false
    Address book account: Address Book (irunlogitrans@gmail.com RQ)
      Main account: Account {name=irunlogitrans@gmail.com, type=bitfire.at.davdroid}
      URL: https://www.googleapis.com/carddav/v1/principals/irunlogitrans@gmail.com/lists/default/
      Sync automatically: true
    
    SQLITE DUMP
    android_metadata
    	|  locale |
    	|  es_ES |
    ----------
    room_master_table
    	|  id | identity_hash |
    	|  42 | 646131aecfaa7b0b69893e2374fb2da3 |
    ----------
    service
    	|  id | accountName | type | principal |
    	|  1 | irunlogitrans@gmail.com | carddav | https://www.googleapis.com/carddav/v1/principals/irunlogitrans@gmail.com |
    ----------
    sqlite_sequence
    	|  name | seq |
    	|  service | 1 |
    	|  collection | 2 |
    	|  homeset | 1 |
    ----------
    homeset
    	|  id | serviceId | url |
    	|  1 | 1 | https://www.googleapis.com/carddav/v1/principals/irunlogitrans@gmail.com/lists/ |
    ----------
    collection
    	|  id | serviceId | type | url | privWriteContent | privUnbind | forceReadOnly | displayName | description | color | timezone | supportsVEVENT | supportsVTODO | supportsVJOURNAL | source | sync |
    	|  2 | 1 | ADDRESS_BOOK | https://www.googleapis.com/carddav/v1/principals/irunlogitrans@gmail.com/lists/default/ | 1 | 1 | 0 | Address Book | My Contacts | <null> | <null> | <null> | <null> | <null> | <null> | 1 |
    ----------
    
    SYSTEM INFORMATION
    Android version: 8.1.0 (F840vES03.0.3)
    Device: COCOMM Gama 802 (F840N4700)
    
    --- END DEBUG INFO ---
    
    

    Someone can help me to sync contacts automatically? Thanks.


  • developer

    Hello,

    This seems to be a problem of your CardDAV server: it returns a .vcf response without an ETag, which is not allowed by CardDAV because the ETag is required for synchronization.

    Such bad behavior is one of the reasons why Google CalDAV/CardDAV is not officially supported by DAVx5.

    I strongly recommend to use a CardDAV service that behaves like specified in the CardDAV standard.



  • I need a free cloud service like google contacts to sync contacs in an android 8.1.0 device that have no Google services, no Google Play, it have nothing. What do you recommend me?



  • Have a look at our list here:

    https://www.davx5.com/tested-with

    There are plently of services that are free also. But as for all free services you have to question why they are free and how they are financed. Maybe host it yourself on a Synology or Nextcloud :)?



  • It’s weird because on tested-with google is included as those tested, it’s actually #17 in the list. But it seems you’re saying google is not supported?

    This is sort of new, BTW, it was working fine for quite a while. I believe before the last 2 updates I got from f-droid everything was fine (last one 2.4.0-1). At times it works, but when it doesn’t, it doesn’t for quite a while. Might be Goggle changed something as well (as mentioned I had no issues before)?



  • Yes, Google is changing a lot all the time and they deprecated older APIs recently. Some people report its working, but we’ve now disabled the entry again, because it makes too much trouble for us to support a service which constantly changes and which is also not very well tested by Google itself.


Log in to reply
 

Similar topics

  • 21
  • 3
  • 12