In order to try to find a reason for this issue, I went ahead and sniffed the traffic between TbSync and both mailservers.
On the mailcow server (using sOGO DAV), the resulting XML for discovering addresses books returns:
HTTP/1.1 207 Multi-Status
Server: nginx
Date: Tue, 07 Jun 2022 03:52:44 GMT
Content-Type: text/xml; charset=utf-8
Content-Length: 2164
Connection: keep-alive
X-Dav-Error: 200 No error
Ms-Author-Via: DAV
Pragma: no-cache
Cache-Control: no-cache
X-Frame-Options: SAMEORIGIN
<?xml version="1.0" encoding="UTF-8"?>
<D:multistatus xmlns:D="DAV:">
<D:response>
<D:href>/SOGo/dav/sr@madjix.ch/Contacts/</D:href>
<D:propstat>
<D:status>HTTP/1.1 200 OK</D:status>
<D:prop>
<D:current-user-privilege-set>
<D:privilege>
<D:read-current-user-privilege-set />
</D:privilege>
<D:privilege>
<D:read />
</D:privilege>
<D:privilege>
<D:bind />
</D:privilege>
<D:privilege>
<D:unbind />
</D:privilege>
<D:privilege>
<D:write />
</D:privilege>
<D:privilege>
<D:write-properties />
</D:privilege>
<D:privilege>
<D:write-content />
</D:privilege>
</D:current-user-privilege-set>
<D:resourcetype>
<D:collection />
</D:resourcetype>
<D:displayname>Contacts</D:displayname>
</D:prop>
</D:propstat>
</D:response>
<D:response>
<D:href>/SOGo/dav/sr@madjix.ch/Contacts/personal/</D:href>
<D:propstat>
<D:status>HTTP/1.1 200 OK</D:status>
<D:prop>
<D:current-user-privilege-set xmlns:n1="urn:inverse:params:xml:ns:inverse-dav">
<D:privilege>
<D:write />
</D:privilege>
<D:privilege>
<D:bind />
</D:privilege>
<D:privilege>
<D:unbind />
</D:privilege>
<D:privilege>
<D:write-properties />
</D:privilege>
<D:privilege>
<D:write-content />
</D:privilege>
<D:privilege>
<D:read-acl />
</D:privilege>
<D:privilege>
<D:write-acl />
</D:privilege>
<D:privilege>
<n1:admin />
</D:privilege>
<D:privilege>
<D:all />
</D:privilege>
</D:current-user-privilege-set>
<D:resourcetype>
<D:collection />
<vcard-collection xmlns="http://groupdav.org/"; />
<addressbook xmlns="urn:ietf:params:xml:ns:carddav" />
</D:resourcetype>
<D:displayname>Personal Address Book</D:displayname>
</D:prop>
</D:propstat>
</D:response>
<D:response>
<D:href>/SOGo/dav/sr@madjix.ch/Contacts/madjix.ch/</D:href>
<D:propstat>
<D:status>HTTP/1.1 200 OK</D:status>
<D:prop>
<D:current-user-privilege-set>
<D:privilege>
<D:read />
</D:privilege>
<D:privilege>
<D:read-current-user-privilege-set />
</D:privilege>
<D:privilege>
<D:all />
</D:privilege>
</D:current-user-privilege-set>
<D:resourcetype>
<D:collection />
<vcard-collection xmlns="http://groupdav.org/"; />
<addressbook xmlns="urn:ietf:params:xml:ns:carddav" />
<directory xmlns="urn:ietf:params:xml:ns:carddav" />
</D:resourcetype>
<D:displayname>GAL madjix.ch</D:displayname>
</D:prop>
</D:propstat>
</D:response>
</D:multistatus>
The same for SmarterMail DAV:
HTTP/1.1 207 Multi-Status
Content-Type: text/xml; charset=utf-8
Vary: Accept-Encoding
X-Robots-Tag: noindex
Strict-Transport-Security: max-age=0
Date: Tue, 07 Jun 2022 03:38:46 GMT
Content-Length: 1883
<?xml version="1.0" encoding="utf-8"?>
<D:multistatus xmlns:D="DAV:">
<D:response>
<D:href>/WebDAV/ab/</D:href>
<D:propstat>
<D:status>HTTP/1.1 200 OK</D:status>
<D:prop>
<D:current-user-privilege-set>
<D:privilege>
<D:read />
<D:write />
<D:write-properties />
<D:write-content />
</D:privilege>
</D:current-user-privilege-set>
<D:resourcetype>
<D:collection />
</D:resourcetype>
<D:displayname>madjik@cybermind.ch</D:displayname>
</D:prop>
</D:propstat>
</D:response>
<D:response>
<D:href>/WebDAV/ab/gal/</D:href>
<D:propstat>
<D:status>HTTP/1.1 200 OK</D:status>
<D:prop>
<D:resourcetype>
<D:collection />
<B:addressbook xmlns:B="urn:ietf:params:xml:ns:carddav" />
</D:resourcetype>
<D:displayname>Global Address List</D:displayname>
</D:prop>
</D:propstat>
<D:propstat>
<D:status>HTTP/1.1 404 Not Found</D:status>
<D:prop>
<D:current-user-privilege-set />
</D:prop>
</D:propstat>
</D:response>
<D:response>
<D:href>/WebDAV/ab/a111198aa81c4e2aa34bba03351d921b/</D:href>
<D:propstat>
<D:status>HTTP/1.1 200 OK</D:status>
<D:prop>
<D:current-user-privilege-set>
<D:privilege>
<D:read />
<D:write />
<D:write-properties />
<D:write-content />
</D:privilege>
</D:current-user-privilege-set>
<D:resourcetype>
<D:collection />
<B:addressbook xmlns:B="urn:ietf:params:xml:ns:carddav" />
</D:resourcetype>
<D:displayname>Contacts</D:displayname>
</D:prop>
</D:propstat>
</D:response>
</D:multistatus>
I've highligted in bold the part that is about the GAL on both XML. On SmarterMail response we can see there is a 404 returned. Probably the source of the issue.
Is TbSync requesting a property that is not available on The GAL resource on SmarterMail ?
More precisely I would say the:
<D:current-user-privilege-set />
property seems to result to a 404 on SmarterMail GAL's.
Shouldn't it return some kind of "read-only" privilege-set on GAL (instead of 404'ing the request)
Kind regards.