Your web server is not properly set up to resolve “/.well-known/caldav” “/.well-known/carddav” “/.well-known/nodeinfo” “/.well-known/webfinger”

Item Value
Nextcloud version (eg, 29.0.5): 28.0.7
Operating system and version (eg, Ubuntu 24.04): CentOS 7
Apache or nginx version (eg, Apache 2.4.25): Apache 2.4.6
PHP version (eg, 8.3): 8.1.29

The issue you are facing:

I still see the following warnings in my “Administration settings” > “Overview” page, despite having (ostensibly) resolved them:

* Your web server is not properly set up to resolve "/.well-known/webfinger". Further information can be found in the [documentation ↗](https://docs.nextcloud.com/server/28/go.php?to=admin-setup-well-known-URL).
* Your web server is not properly set up to resolve "/.well-known/nodeinfo". Further information can be found in the [documentation ↗](https://docs.nextcloud.com/server/28/go.php?to=admin-setup-well-known-URL).
* Your web server is not properly set up to resolve "/.well-known/caldav". Further information can be found in the [documentation ↗](https://docs.nextcloud.com/server/28/go.php?to=admin-setup-well-known-URL).
* Your web server is not properly set up to resolve "/.well-known/carddav". Further information can be found in the [documentation ↗](https://docs.nextcloud.com/server/28/go.php?to=admin-setup-well-known-URL).
* The database is used for transactional file locking. To enhance performance, please configure memcache, if available. For more details see the [documentation ↗](https://docs.nextcloud.com/server/28/go.php?to=admin-transactional-locking).

I may not have configured the “.well-known” URLs correctly (but they are configured in my Apache conf file for Nextcloud), but memcache? That’s DEFINITELY in my config.php. The error persists.

Is this the first time you’ve seen this error? (Y/N):

No. I see it every time I load the “Administration settings” > “Overview” page, despite my best efforts.

The output of your Nextcloud log in Admin > Logging:

PASTE HERE

The output of your config.php file in /path/to/nextcloud (make sure you remove any identifiable information!):

<?php
$CONFIG = array (
  'instanceid' => 'tNoMcAPgGRMb',
  'passwordsalt' => 'KHuboBdlIyA3hEzZmEimY1hLs7X1v3',
  'secret' => 'gdRh5QXCYDhSxPZVlL88Leh1fSuzhZOb2nqGXFjoBPZSPgvp',
  'trusted_domains' =>
  array (
    0 => 'nextcloud.example.com',
  ),
  'datadirectory' => '/var/www/nextcloud/data',
  'dbtype' => 'mysql',
  'version' => '28.0.7.4',
  'overwrite.cli.url' => 'https://nextcloud.example.com',
  'dbname' => 'nextcloud',
  'dbhost' => '127.0.0.1',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'nextcloud',
  'dbpassword' => 'IgBCpdbjugswfiUOSVSY',
  'installed' => true,
  'mail_from_address' => 'nextcloud',
  'mail_smtpmode' => 'smtp',
  'mail_sendmailmode' => 'smtp',
  'mail_domain' => 'example.com',
  'mail_smtphost' => 'mail.example.com',
  'mail_smtpport' => '25',
  'maintenance' => false,
  'ldapProviderFactory' => 'OCA\\User_LDAP\\LDAPProviderFactory',
  'theme' => '',
  'loglevel' => 2,
  'default_phone_region' => 'US',
  'onlyoffice' =>
  array (
    'verify_peer_off' => true,
    'jwt_secret' => 'rtMt1vFTEWVL2DdGblXTieA222PiDLCF',
    'jwt_header' => 'Authorization',
  ),
  'updater.secret' => 'AcfYgG4AvScZPJo68qTwxyCYofCgM37GW6hSoXZ8Dcbez04Fv4RmAqE1Fx75',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'defaultapp' => '',
  'maintenance_window_start' => 1,
);

Here’s my apache conf file for Nextcloud (sanitized):

<VirtualHost *:80>
  ServerName nextcloud.example.com
  Redirect permanent / https://nextcloud.example.com/
</VirtualHost>

<VirtualHost *:443>
  ServerName nextcloud.example.com
  ServerAlias nextcloud.example.com
  ServerAdmin nextcloud@example.com
  DocumentRoot "/var/www/nextcloud"

  SSLEngine On
  SSLCertificateFile /etc/pki/certs/wildcard-example.com.crt
  SSLCertificateKeyFile /etc/pki/keys/wildcard-example.com.key

  <IfModule mod_headers.c>
    Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
  </IfModule>

  <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^/\.well-known/carddav /nextcloud/remote.php/dav [R=301,L]
    RewriteRule ^/\.well-known/caldav /nextcloud/remote.php/dav [R=301,L]
    RewriteRule ^/\.well-known/webfinger /nextcloud/index.php/.well-known/webfinger [R=301,L]
    RewriteRule ^/\.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo [R=301,L]
  </IfModule>

  <Directory /var/www/nextcloud>
    Options FollowSymLinks MultiViews
    DirectoryIndex index.php
    AllowOverride All
    Require all granted
  </Directory>

  ErrorLog logs/nextcloud-error_log
  CustomLog logs/nextcloud-access_log common
</VirtualHost>

And here’s my apache .htaccess file for Nextcloud (sanitized - but also I’m pretty sure my setup doesn’t permit the use of .htaccess files):

<IfModule mod_headers.c>
  <IfModule mod_setenvif.c>
    <IfModule mod_fcgid.c>
       SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
       RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
    </IfModule>
    <IfModule mod_proxy_fcgi.c>
       SetEnvIfNoCase Authorization "(.+)" HTTP_AUTHORIZATION=$1
    </IfModule>
    <IfModule mod_lsapi.c>
      SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
      RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
    </IfModule>
  </IfModule>

  <IfModule mod_env.c>
    # Add security and privacy related headers

    # Avoid doubled headers by unsetting headers in "onsuccess" table,
    # then add headers to "always" table: https://github.com/nextcloud/server/pull/19002
    Header onsuccess unset Referrer-Policy
    Header always set Referrer-Policy "no-referrer"

    Header onsuccess unset X-Content-Type-Options
    Header always set X-Content-Type-Options "nosniff"

    Header onsuccess unset X-Frame-Options
    Header always set X-Frame-Options "SAMEORIGIN"

    Header onsuccess unset X-Permitted-Cross-Domain-Policies
    Header always set X-Permitted-Cross-Domain-Policies "none"

    Header onsuccess unset X-Robots-Tag
    Header always set X-Robots-Tag "noindex, nofollow"

    Header onsuccess unset X-XSS-Protection
    Header always set X-XSS-Protection "1; mode=block"

    SetEnv modHeadersAvailable true
  </IfModule>

  # Add cache control for static resources
  <FilesMatch "\.(css|js|mjs|svg|gif|png|jpg|ico|wasm|tflite)$">
    <If "%{QUERY_STRING} =~ /(^|&)v=/">
      Header set Cache-Control "max-age=15778463, immutable"
    </If>
    <Else>
      Header set Cache-Control "max-age=15778463"
    </Else>
  </FilesMatch>

  # Let browsers cache WOFF files for a week
  <FilesMatch "\.woff2?$">
    Header set Cache-Control "max-age=604800"
  </FilesMatch>
</IfModule>


<IfModule mod_php.c>
  php_value mbstring.func_overload 0
  php_value default_charset 'UTF-8'
  php_value output_buffering 0
  <IfModule mod_env.c>
    SetEnv htaccessWorking true
  </IfModule>
</IfModule>

<IfModule mod_mime.c>
  AddType image/svg+xml svg svgz
  AddType application/wasm wasm
  AddEncoding gzip svgz
  # Serve ESM javascript files (.mjs) with correct mime type
  AddType text/javascript js mjs
</IfModule>

<IfModule mod_dir.c>
  DirectoryIndex index.php index.html
</IfModule>

<IfModule pagespeed_module>
  ModPagespeed Off
</IfModule>

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{HTTP_USER_AGENT} DavClnt
  RewriteRule ^$ /remote.php/webdav/ [L,R=302]
  RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
  RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
  RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
  RewriteRule ^\.well-known/webfinger /nextcloud/index.php/.well-known/webfinger [R=301,L]
  RewriteRule ^\.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo [R=301,L]
  RewriteRule ^remote/(.*) remote.php [QSA,L]
  RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
  RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L]
  RewriteRule ^ocm-provider/?$ index.php [QSA,L]
  RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]
</IfModule>

# Clients like xDavv5 on Android, or Cyberduck, use chunked requests.
# When FastCGI or FPM is used with apache, requests arrive to Nextcloud without any content.
# This leads to the creation of empty files.
# The following directive will force the problematic requests to be buffered before being forwarded to Nextcloud.
# This way, the "Transfer-Encoding" header is removed, the "Content-Length" header is set, and the request content is proxied to Nextcloud.
# Here are more information about the issue:
#  - https://docs.cyberduck.io/mountainduck/issues/fastcgi/
#  - https://docs.nextcloud.com/server/latest/admin_manual/issues/general_troubleshooting.html#troubleshooting-webdav
<IfModule mod_setenvif.c>
  SetEnvIf Transfer-Encoding "chunked" proxy-sendcl=1
</IfModule>

AddDefaultCharset utf-8
Options -Indexes
#### DO NOT CHANGE ANYTHING ABOVE THIS LINE ####

ErrorDocument 403 /index.php/error/403
ErrorDocument 404 /index.php/error/404

so you can see, I’m at a bit of a loss as to why these errors persist.

Did you read the link to the docs? You don’t have memcache.locking configured. See here and the link the the warning suggests here.

Your Apache config suggests the RewriteRule lines are incorrect. You don’t have a subfolder installation if your DocumentRoot points at the root of the Nextcloud install folder (as it appears yours does). Drop the /nextcloud/ before the index.php|remote.php references.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.