Steps to reproduce:
Set up a Caldav calendar (mailbox.org here).
With DAVx5 connect to this calendar.
Cause an sync error. In this case deleting a recurrent birthday reminder caused an error 403 (Forbidden) from the server.
DAVx5 writes a log file with technical error information (e. g. HTTP request and response, technical device information, Java stacktrace). The information might help the developer, but it doesn’t help a non-tech user at all.
The information about the failure appears as a tiny icon in the status bar only, where it can easily be overlooked.
DAVx5 informs the user in a visible message, in understandable, non-tech words that it could not synchronize, which item is affected (the displayed name of the contact, date or task), what caused the error, how he/she can solve the problem and go on. For instance see https://www.nngroup.com/articles/top-10-application-design-mistakes/, chapter 3.
If the log file is needed for the developer, DAVx5 helps the end-user with easy-to-follow steps to send it to the developer.
There are no such restrictions. Theoretically, you can sync hundreds of calendars, so I guess there’s another reason why some calendars don’t show up. Do those calendars have something in common, for instance are they shared calendars?
@synncgw I see, so the server previously sent Content-Encoding: gzip without actually using gzencode(), which caused the problems (no crash ).
In my opinion, okhttp/okio should accept 0-octet gzip responses nevertheless, but the specific problem should be fixed with your changes, so I have marked the topic as solved.
Probably all contacts which are edited otherwise are working. You can also edit a contact with photo in the Posteo Web interface and then Posteo will send the correct photo, which can then be synchronized.
@rfc2822 Afaik Nextcloud allows to store all kind of recurring events in the database, but lacks of a fully featured event editor. Currently I found these issue tickets related to the editing of recurring events:
New concept for entering recurrence rules / full-featured recurrence settings
special dialog when editing repeating events
@pescepalla Thank’s a lot! Your solution workes on my Xiaomi 5s plus with nextcloud on an own server in my LAN and using DAVx⁵ for synchronisation after I’ve searched two days where the problem comes from. By accident I installed nextcloud 15 and deleted and reconfigured DAVx⁵’s account. So I was not clear if it’s a nextcloud or a DAVx⁵ problem. Finally I found out in the nextcloud logs an entry
webdav Sabre\DAV\Exception\NotAuthenticated: No public access to this resource., No 'Authorization: Basic' header found. Either the client didn't send one, or the server is misconfigured, No 'Authorization: Bearer' header found. Either the client didn't send one, or the server is mis-configured, No 'Authorization: Basic' header found. Either the client didn't send one, or the server is misconfigured
Still misleading, I checked everything related with passwords and accounts.
Android doesn’t sync if it can’t connect to a working captive_portal_https_url, even if you choosed in the internet access settings for your network not to ask the question anymore and the internet works as far, as possible in China. And that with LineageOs. As many people not only using their own local nextcloud installation inside a LAN that is kind of a strange setting with Android in China at least.
Thanks again, @pescepalla !
HTTP 204 No Content must not have a body and thus Content-Length (which is the definition of 204). It seems like your server has returned HTTP 204 with a body, which does not make sense and can’t be interpreted. Please fix your Web server/application server.
Another thing which I don’t understand: Why even use X-APPLE-OMIT-YEAR if 1604 is assumed in any case? Why not just write partial dates as BDAY:1604-mm-dd (and assume that every date with 1604 is a partial date), wouldn’t it be the same?
Or does Apple use X-APPLE-OMIT-YEAR=1605 (or another non-1604-year) if the BDAY year is really 1604?
That is indeed a good question. I’ll try to do some tests when I get the next chance to test with an iPhone (I don’t have one myself).
Why can’t the server be improved so that it understands vCard 4?
Simply because the server is not under my control. I agree that upgrading the server really is the only way to add new features though.
Restrict Android to not offer partial dates in the contact schema at all, so that users cannot enter partial dates. This is how it has been until users have explicitly requested this feature because it’s available in Android and it’s available in vCard 4. Unfortunately, it’s not possible to (dis)allow partial dates according to server vCard 4 support because this support may change from sync to sync (and even if it wouldn’t, it can’t be set per account in Android).
I wasn’t aware of that.
So, there’s always a case with inconsistent behavior, which is a logical consequence of the fact that vCard 3 doesn’t support partial dates.
Now: Which case is more important?
To be honest, the arguments for both sides are pretty good and I’m no longer sure which one really is the best choice. (Maybe unless the answer to "
Or does Apple use X-APPLE-OMIT-YEAR=1605 (or another non-1604-year) if the BDAY year is really 1604?" is yes, since option 3 would probably cause the least loss in that case.)
yes I have, but I have to find an alternative way to reaching my NAS since I can’t just do https://nas.mydomain.com:8443 as I am using a reverse proxy to make sure my subdomains point to specific ports on the NAS.
My current setup is:
I have a subdomain (contacts.mydomain.com) (443) which points to my DDNS mydomain.ddns.net. The DDNS points to my network, and the 443 reaches my NAS, goes through a reverse proxy and points to a specific port in the NAS (in this case 8008). I need to do this to make sure I have a recognised SSL certificate from my domain.
Again, this setup works (if I open a browser and go to contacts.mydomain.com, it asks me username and password, and I can access the cardDAV (contacts.mydomain.com is sending me to http://192.168.1.200:8008/addressbooks/users/alex/ via reverse proxy).
I understand that DAVx5 wants a diskstation.example.com:8443 type of address, but I can’t just appent the port number to my nas address, as it would not recognize the SSL cert