Unable to upload files larger than 2GB via WebDav

Hey All -

As mentioned in the subject line, I am unable to upload a 2+ GB file successfully using a WebDAV client such as CyberDuck (or any other webdav client). Sometimes the file will actually show uploaded even after the error appears. Larger files such as 5GB+ are never successful using WebDAV. Using the website or NC client though, works just fine.

I’ve performed the steps here:
Uploading big files > 512MB — Nextcloud latest Administration Manual latest documentation

I’m not using HTTP2 or Mod.reqtimeout so those don’t appear to be factors though I did search on here.

I’ve also removed NGINX from the picture and tried it without, same issue so that rules out NGINX.

PHP is 8.3.

Error in nextcloud logs:
BadRequest: Expected filesize of 30160118784 bytes but read (from Nextcloud client) and wrote (to Nextcloud storage) 4478558208 bytes. Could either be a network problem on the sending side or a problem writing to the storage on the server side.

Here’s more details about my configuration:

Server configuration detail

Operating system: Linux 6.8.0-39-generic #39-Ubuntu SMP PREEMPT_DYNAMIC Fri Jul 5 21:49:14 UTC 2024 x86_64

Webserver: Apache/2.4.58 (Ubuntu) (apache2handler)

Database: mysql 10.11.8

PHP version: 8.3.6

Modules loaded: Core, date, libxml, openssl, pcre, zlib, filter, hash, json, random, Reflection, SPL, session, standard, sodium, apache2handler, mysqlnd, PDO, xml, apcu, bcmath, calendar, ctype, curl, dom, mbstring, FFI, fileinfo, ftp, gd, gettext, gmp, iconv, igbinary, imagick, intl, ldap, exif, mysqli, pdo_mysql, Phar, posix, readline, redis, shmop, SimpleXML, sockets, sysvmsg, sysvsem, sysvshm, tokenizer, xmlreader, xmlwriter, xsl, zip, Zend OPcache

Nextcloud version: 29.0.4 - 29.0.4.1

Updated from an older Nextcloud/ownCloud or fresh install:

Where did you install Nextcloud from: unknown

Signing status

List of activated apps
Enabled:
 - activity: 2.21.1
 - bruteforcesettings: 2.9.0
 - circles: 29.0.0-dev
 - cloud_federation_api: 1.12.0
 - comments: 1.19.0
 - contactsinteraction: 1.10.0
 - dashboard: 7.9.0
 - dav: 1.30.1
 - federatedfilesharing: 1.19.0
 - federation: 1.19.0
 - files: 2.1.0
 - files_downloadlimit: 2.0.0
 - files_pdfviewer: 2.10.0
 - files_reminders: 1.2.0
 - files_sharing: 1.21.0
 - files_trashbin: 1.19.0
 - files_versions: 1.22.0
 - firstrunwizard: 2.18.0
 - logreader: 2.14.0
 - lookup_server_connector: 1.17.0
 - nextcloud_announcements: 1.18.0
 - notifications: 2.17.0
 - oauth2: 1.17.0
 - password_policy: 1.19.0
 - photos: 2.5.0
 - privacy: 1.13.0
 - provisioning_api: 1.19.0
 - recommendations: 2.1.0
 - related_resources: 1.4.0
 - serverinfo: 1.19.0
 - settings: 1.12.0
 - sharebymail: 1.19.0
 - support: 1.12.0
 - survey_client: 1.17.0
 - systemtags: 1.19.0
 - text: 3.10.1
 - theming: 2.4.0
 - twofactor_backupcodes: 1.18.0
 - updatenotification: 1.19.1
 - user_ldap: 1.20.0
 - user_status: 1.9.0
 - viewer: 2.3.0
 - weather_status: 1.9.0
 - workflowengine: 2.11.0
Disabled:
 - admin_audit
 - encryption
 - files_external
 - suspicious_login
 - twofactor_totp

"instanceid": "***REMOVED SENSITIVE VALUE***",
    "passwordsalt": "***REMOVED SENSITIVE VALUE***",
    "secret": "***REMOVED SENSITIVE VALUE***",
    "trusted_domains": [
        "drive.xxxxxx.com"
    ],
    "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
    "overwrite.cli.url": "https:\/\/drive.xxxxxx.com",
    "overwriteprotocol": "https",
    "forwarded_for_headers": [
        "HTTP_X_FORWARDED",
        "HTTP_FORWARDED_FOR"
    ],
    "datadirectory": "***REMOVED SENSITIVE VALUE***",
    "dbtype": "mysql",
    "version": "29.0.4.1",
    "dbname": "***REMOVED SENSITIVE VALUE***",
    "dbhost": "***REMOVED SENSITIVE VALUE***",
    "dbport": "",
    "dbtableprefix": "oc_",
    "mysql.utf8mb4": true,
    "dbuser": "***REMOVED SENSITIVE VALUE***",
    "dbpassword": "***REMOVED SENSITIVE VALUE***",
    "installed": true,
    "default_phone_region": "US",
    "maintenance_window_start": 1,
    "maintenance": false,
    "tempdirectory": "\/var\/www\/drive.xxxxxxx.com\/temp",
    "debug": false,
    "default_locale": "en_US",
    "ldapProviderFactory": "OCA\\User_LDAP\\LDAPProviderFactory",
    "memcache.local": "\\OC\\Memcache\\APCu",
    "distributed": "\\OC\\Memcache\\Redis",
    "memcache.locking": "\\OC\\Memcache\\Redis",
    "filelocking.enabled": "true",
    "redis": {
        "host": "***REMOVED SENSITIVE VALUE***",
        "port": 0,
        "timeout": 0
    }
}

Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0

Any ideas what else I can check for those of you that have this working??

Thanks

Third-party clients need to implement chunking for reliable uploading of larger files, to avoid timeouts/etc. This is what the official clients all do.

e.g. For CyberDuck:

It also has a 30s default timeout (but that can be adjusted manually):

Probably unrelated, but this is incorrect (likely just a typo):

"distributed": "\\OC\\Memcache\\Redis",

It’s missing the memcache. prefix.

1 Like