What the message looks like
Your web server is not properly set up to resolve "/.well-known/caldav". Further information can be found in the documentation.
Your web server is not properly set up to resolve "/.well-known/carddav".Common causes
- The nginx server block has no redirect for the two
.well-knownpaths. - A reverse proxy in front of Nextcloud answers
/.well-known/itself or does not pass it on. - On Apache,
.htaccessis ignored becauseAllowOverrideis notAllormod_rewriteis off, or the file is outdated. - Nextcloud is installed in a subfolder, so the well-known path must sit on the domain root.
Check
- What does caldav answer?
curl -sI https://cloud.example.com/.well-known/caldav - What does carddav answer?
curl -sI https://cloud.example.com/.well-known/carddav - Is there a rule in the nginx config?
nginx -T 2>/dev/null | grep -n well-known - Which URL does Nextcloud assume?
Fix
- In nginx, add to the server block:
location = /.well-known/carddav { return 301 /remote.php/dav/; }and the same forcaldav. Thennginx -tandsystemctl reload nginx. - With a reverse proxy, put the two redirects on the proxy, or pass
/.well-known/through to Nextcloud. - On Apache, enable
mod_rewrite(a2enmod rewrite), setAllowOverride Allfor the Nextcloud folder, then runsudo -u www-data php occ maintenance:update:htaccess. - Check again with
curl -sI: you want301and aLocationending in/remote.php/dav. Then reload the overview page.
FAQ
Does this block calendar and contact sync?
Not if you enter the full address https://cloud.example.com/remote.php/dav in the client. Without the redirect, automatic discovery by just the domain name fails.
Is a 302 or a 200 also fine?
The check expects a redirect to /remote.php/dav. A 200 with a page body or a 404 means the path is not handled, so the warning stays.