sabre-io / Baikal

Baïkal is a Calendar+Contacts server
https://sabre.io/baikal/
GNU General Public License v3.0
2.46k stars 284 forks source link

macOS 10.15 Catalina sync with Reminders app is broken #920

Closed Tschoepler closed 3 years ago

Tschoepler commented 4 years ago

Hi,

After upgrading to macOS Catalina I thought that webdav was removed from Apple's own Reminders app. After some testing with Owncloud's calendar I figured out that the problem is actually one with Baikal. Owncloud syncs with Reminders.app just fine.

My Baikal installation runs version 0.61 on PHP 7.2.29 and syncs with Apple's Calendar app just fine but not with the Reminders app anymore. It still works for my Pixel (Android), iPhones/iPads running iOS 12 and 13 and with another MacBook running macOS 10.14 Mojave. So I assume the Baikal installation itself is not corrupt. Also as I mentioned above: it syncs just fine with Owncloud's calendar. Since I like Baikal and don't want to migrate everything to Owncloud I wanted to report this bug and ask for any advice, workarounds or just other users with the same issue.

When looking into macOS console I get quite some errors from Reminders.app but I don't know if it is actually related. I think some has to do with me not having the iCloud account active for reminders ("no cloudkit account").

error   17:24:51.235245+0200    remindd Trying to get the primary CK account but can't find any
error   17:24:51.235312+0200    remindd SYNC[FULL] FAIL - no CloudKit account

error   17:15:49.325704+0200    remindd Unhandled CoreDAVHTTP error code of 405d

error   17:15:49.325854+0200    remindd Account "<private>" can't figure out its principalPath.

error   17:15:52.983995+0200    remindd Throttler denied operation {identifier: <private>, remainingTimeInterval: 7.0274, throttleResetDate: <private>}
ByteHamster commented 4 years ago

Could you please post the relevant parts of the apache/nginx log file on the server?

Tschoepler commented 4 years ago

I don't have anything in the apache error_log :/ I am on a semi-shared host (uberspace.de). Where would I find the "relevant parts" that you are referring to?

in the access_log I get some stuff:

5.180.62.0 - - [03/May/2020:14:28:30 +0200] "PROPFIND /.well-known/caldav HTTP/1.1" 405 333 "-" "iOS/10.15.4 (19E287) remindd/1.0"
5.180.62.0 - - [03/May/2020:14:28:30 +0200] "PROPFIND / HTTP/1.1" 405 315 "-" "iOS/10.15.4 (19E287) remindd/1.0"
5.180.62.0 - - [03/May/2020:14:28:30 +0200] "PROPFIND /principals/ HTTP/1.1" 405 326 "-" "iOS/10.15.4 (19E287) remindd/1.0"
5.180.62.0 - - [03/May/2020:14:28:30 +0200] "PROPFIND /calendar/dav/USER/user/ HTTP/1.1" 405 344 "-" "iOS/10.15.4 (19E287) remindd/1.0"
5.180.62.0 - - [03/May/2020:14:28:31 +0200] "PROPFIND /.well-known/caldav HTTP/1.1" 405 333 "-" "iOS/10.15.4 (19E287) remindd/1.0"
5.180.62.0 - - [03/May/2020:14:28:31 +0200] "PROPFIND / HTTP/1.1" 405 315 "-" "iOS/10.15.4 (19E287) remindd/1.0"
5.180.62.0 - - [03/May/2020:14:28:31 +0200] "PROPFIND /principals/ HTTP/1.1" 405 326 "-" "iOS/10.15.4 (19E287) remindd/1.0"
5.180.62.0 - - [03/May/2020:14:28:31 +0200] "PROPFIND /calendar/dav/USER/user/ HTTP/1.1" 405 339 "-" "iOS/10.15.4 (19E287) remindd/1.0"
5.180.62.0 - - [03/May/2020:14:28:43 +0200] "PROPFIND /.well-known/caldav HTTP/1.1" 405 333 "-" "iOS/10.15.4 (19E287) remindd/1.0"
5.180.62.0 - - [03/May/2020:14:28:43 +0200] "PROPFIND / HTTP/1.1" 405 315 "-" "iOS/10.15.4 (19E287) remindd/1.0"
5.180.62.0 - - [03/May/2020:14:28:43 +0200] "PROPFIND /principals/ HTTP/1.1" 405 326 "-" "iOS/10.15.4 (19E287) remindd/1.0"
5.180.62.0 - - [03/May/2020:14:28:44 +0200] "PROPFIND /calendar/dav/USER/user/ HTTP/1.1" 405 339 "-" "iOS/10.15.4 (19E287) remindd/1.0"
5.180.62.0 - - [03/May/2020:14:28:44 +0200] "PROPFIND /.well-known/caldav HTTP/1.1" 405 333 "-" "iOS/10.15.4 (19E287) remindd/1.0"
5.180.62.0 - - [03/May/2020:14:28:44 +0200] "PROPFIND / HTTP/1.1" 405 315 "-" "iOS/10.15.4 (19E287) remindd/1.0"
5.180.62.0 - - [03/May/2020:14:28:44 +0200] "PROPFIND /principals/ HTTP/1.1" 405 326 "-" "iOS/10.15.4 (19E287) remindd/1.0"
5.180.62.0 - - [03/May/2020:14:28:44 +0200] "PROPFIND /calendar/dav/USER/user/ HTTP/1.1" 405 344 "-" "iOS/10.15.4 (19E287) remindd/1.0"
ByteHamster commented 4 years ago

What server URL do you enter? Looks like the device tries to access various URLs but none of them is the actual dav.php that Baikal uses for synchronizing.

Tntdruid commented 4 years ago

i use this on mac https://dav.mydomain.tld/dav.php

Tschoepler commented 4 years ago

until now I was using https://mydomain.tld/baikal/html/dav.php/principals/USERNAME Worked for me on all devices iOS, macOS and Android. I also tried https://mydomain.tld/baikal/html/dav.php as mentioned by @Tntdruid I can add the account as such in the macOS settings but it does still not sync : /

ByteHamster commented 4 years ago

I also tried https://mydomain.tld/baikal/html/dav.php

This is in fact the recommended URL, so everything is right there.

I am on a semi-shared host (uberspace.de). Where would I find the "relevant parts" that you are referring to?

Looks like you need to enable error_log first: https://manual.uberspace.de/web-logs.html

Tschoepler commented 4 years ago

I am on a semi-shared host (uberspace.de). Where would I find the "relevant parts" that you are referring to?

Looks like you need to enable error_log first: https://manual.uberspace.de/web-logs.html

i had done that already. no errors in there after two days : /

Tschoepler commented 3 years ago

after lots of trial and error and trying to redirect .well-known/caldav etc. I finally found the solution

Simply change /baikal/config/baikal.yaml line 9.

from: base_uri: ‘’ to: base_uri: ‘/‘

i totally overlooked this and since I installed baikal on a subdomain on my uberspace I had to make this change. now everything is working nicely and i can even finally use the subdomain when setting the accounts up on iOS and macOS instead of using the super long direct link of my uberspace account user.uber.space/baikal/html…

i hope this helps someone some day :]

tristan-k commented 1 year ago

@Tschoepler Thanks! I don't get why this isn't included in the baikal guide for uberspace?

Tschoepler commented 1 year ago

@Tschoepler Thanks! I don't get why this isn't included in the baikal guide for uberspace?

@tristan-k Because in the manual they don't use a subdomain.

Quote from the manual:

You can also choose not to replace your html directory (and e.g. install Baïkal in a subdirectory or under a subdomain). In that case, you need to perform additional configuration steps.

i don’t have the time to make a pull request for adding it to the documentation. If you have time, go ahead https://github.com/Uberspace/lab/blob/main/source/guide_baikal.rst