Nextcloud 13 chunking upload not working

I asked here already: Broken uploads - DAV Exception BadRequest Message expected filesize 7900672 got 7143424

I have a broken NC13.0.2 which is an upgrade from NC12.0.0.
WebGUI is now working with the work around described above.

I compared NC code in /var/www/nextcloud with the downloadable zip archive from nextcloud.com. They are identical. (Accept config.php and a /var/www/nextcloud/data folder with an old owncloud.db and nextcloud.log files)

I restored the data and database from the updated and broken NC to a fresh installation. That works.

Where else to look what might be wrong?

partial solution here

where exactly?

INSERT INTO oc_appconfig ( ‘appid’ , ‘configkey’ , ‘configvalue’ ) VALUES (‘files’, ‘max_chunk_size’, ‘524288000’);

Jeppp. But only for the web gui.

And at the fresh installation it’s not needed.

If the problem is a database setting it would move the other installation. Or?

my client in windows is facing same issue. only uploading files lesser than 10MB, is there a fix? the work around is not working. I also got Error transferring http://… (Savre\DAV\Exception\NotFound).

I have encountered the same problem - files larger than 10MB weren’t uploading via both WEB and MAC application.
The workaround solution helped to solve the issue when uploading via WEB, but the app problem is still actual.

Please advice.

All of you, are you using 32 bit or 64 bit versions of Linux?

I have solved this issue by installing nginx DAV module, which wasn’t installed on my host.

64bit.
I have an nginx --with-http_dav_module which doesn’t work and an exactly same configuration which is working.

nginx version: nginx/1.14.0
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9)
built with OpenSSL 1.0.2g  1 Mar 2016
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'

Please check if you may have a clause like

        # Disallow access to hidden files and directories
        location ~ /\. {
                return 404;
        }

This isn’t recommended by nextclouds example config of nginx.
https://docs.nextcloud.com/server/14/admin_manual/installation/nginx.html?highlight=nginx

Source: https://github.com/nextcloud/server/issues/8802#issuecomment-427162499

Thank you @timm2k that exactly my issue. I really need to restrict hidden files but I have exceptions.

Hi jisse44,
maybe it sounds silly, but after searching for hours, i coulndt find a solution.(me newbie)
Can you give me an idea or link, how i can perform this?
INSERT INTO oc_appconfig ( appid , configkey , configvalue ) VALUES (‘files’, ‘max_chunk_size’, ‘524288000’);
I can real not catch the Idea!
I can also not find, where i can do this …

&& i see, its a NC13 topic, i run NC14 … sorry

The main reason ist, that i have a terrible uploadspeed inside/ outside my local network and try to solve it.
The downloadspeed is absolute ok (2-3 Mbs exter and 8-10 Mbs in local Network), but uploading (with the Desktop-app, webdav and webinterface) is horrible slow (30-150 kbs).
I’ve tried almost all, in all me known config’s.

Hi, my SQL workaround is out-of-date by now, since I applied thix fix in my nginx configuration:

EDIT: the chunk assembling is still not working, I basically need to disable it if I want my bigger upload to work (or set it super high, which results in the same behaviour I guess).

occ config:app:set --value 0 files max_chunk_size
Config value max_chunk_size for app files set to 0

Just registered to mention that (after about 4 hours), I did encounter that same issue on a new install (via Ansible), which the max_chunk_size fixed for me. I used occ to do the change:

nextcloud:~$ occ config:app:set --value 524288000 files max_chunk_size
Config value max_chunk_size for app files set to 524288000
nextcloud:~$ occ config:app:get files max_chunk_size
524288000

To give a bit of context, I am using Nginx as a reverse proxy and Apache on the nextcloud server. The upload kept failing, always at the very end, whatever the size (tested from 2 GB to 30 MB).
Both reverse proxy and Apache would raise the following error:

"MOVE /remote.php/dav/uploads/myuser/web-file-upload-XXXXXXXXXXX-XXXXXXXX/.file HTTP/2.0" 404 1636 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox"
[11/Mar/2021:12:37:45 +0100] 82.64.137.121 - nextcloud.example.com: MOVE /remote.php/dav/uploads/myuser/web-file-upload-XXXXXXXXXXX-XXXXXXXX/.file HTTP/2.0 - 404 - UT=0.000 RT=0.001

.file + HTTP 404
And indeed no such file would be inside the uploads directory, leaving those failed upload there, while showing in the GUI:

Also (for completion), testing via WebDAV / cadaver, upload would be fine no matter the size.

1 Like

Following up on my observation. With max_chunk_size set to 0, the file gets fully uploaded on the reverse proxy until the end, when it then reaches /tmp on the nextcloud server, and is then further moved to its final destination.

Dear oh dear, my mistake!
A bad filter in my Apache security.conf file was responsible for the 404 on .file.
Once I fixed that, I could set up chunks again without fearing of overwhelming the memory and/or filesystem on the reverse proxy or the host.

Was this a filter that you had created yourself? I am currently suffering a similar error (files over 10 MB not uploading) with a similar setup (nginx reverse proxy / apache on the nextcloud(pi) server).