Uploading from a phone on the same network as the server fails for large files (WebDAV / mobile clients)

Support intro

I’m running a self-hosted Nextcloud instance for personal use. I’m comfortable with Linux, networking, and server administration. This is not my first Nextcloud install, and smaller uploads work reliably. The issue is specifically around large file uploads from mobile devices, even when on the same LAN as the server.


The Basics

Nextcloud Server version (e.g., 29.x.x):
32.0.2

Operating system and version (e.g., Ubuntu 24.04):
Fedora Server 43

Web server and version (e.g., Apache 2.4.25):
Apache 2.4.66-1.fc43.x86_64

Reverse proxy and version (e.g., nginx 1.27.2):
Yes – reverse proxy in front (nginx / Caddy depending on service)

PHP version (e.g., 8.3):
PHP 8.3

Is this the first time you’ve seen this error? (Yes / No):
No

When did this problem seem to first start?
Since initial setup; has been consistent across updates

Installation method (e.g. AIO, NCP, Bare Metal/Archive, etc.):
Bare metal / manual installation

Are you using Cloudflare, mod_security, or similar? (Yes / No):
No Cloudflare
No mod_security


Summary of the issue you are facing

Uploading large files from a phone (Nextcloud mobile app or other WebDAV client) frequently fails or hangs indefinitely, even when the phone is on the same local network as the server (gigabit internet). Always fails on large files, including with Android’s Ex File Explorer, Cx File Explorer, and Solid Explorer (Solid Explorer is the most stable of them all but not always). Of course, I always use Nextcloud; the files simply disappear but don’t upload.

Key observations:

  • Small files upload fine from mobile

  • Large files (hundreds of MB to multi-GB) consistently fail from mobile

  • Uploading the same files from a laptop works

  • Uploading via FTP directly into the data directory works

  • After FTP upload, running occ files:scan (via cron or manually) successfully imports the files

  • This suggests a WebDAV / mobile client / chunking / timeout issue, not disk space or permissions

Because of this, my current workflow for large uploads is:

  1. FTP the files directly to the data directory

  2. Run a cron job to rescan files

This works, but clearly bypasses WebDAV and defeats the purpose of mobile uploads.


Steps to replicate it

  1. Install Nextcloud on a self-hosted server with reverse proxy

  2. Configure Nextcloud mobile app on a phone

  3. Connect phone to the same LAN as the server (no WAN traversal)

  4. Attempt to upload a large file (e.g., 1–10 GB video)

  5. Upload stalls, times out, or silently fails

  6. Repeat same upload from a laptop → succeeds


Log entries

Nextcloud

No consistent fatal error is logged at the application level during failures. Upload often stops without a clear server-side exception.

(Logs can be provided if needed, but there is no obvious smoking-gun entry.)


Web Browser

Not applicable — issue occurs via mobile app / WebDAV clients, not browser UI.


Web server / Reverse Proxy

No consistent error logged corresponding to the failure time. No 413 errors observed. No disk or permission errors.


Configuration

Nextcloud

I can provide sanitized config.php or occ config:list system if needed.
Nothing unusual beyond reverse proxy settings and large file handling tweaks.


Apps

Standard apps only. No third-party upload or filesystem extensions.


Additional context / hypothesis

This appears to be related to mobile WebDAV chunked uploads, possibly involving:

  • Timeouts

  • PHP execution limits

  • Reverse proxy buffering

  • Mobile app retry behavior

  • Background upload handling on phones

What’s notable is that this happens even on the same network, eliminating WAN latency as a factor.

I’m looking for guidance on:

  • Known mobile upload limitations

  • Recommended settings specifically for large uploads from phones

  • Whether this is a known issue with mobile WebDAV clients vs desktop

Note: this issue existed when zero issues existed in the Security & safety warnings section, so it would likely be independent to any new issues that arise (which some did, but nothing significant).

The official Nextcloud clients all use chunking. Though the specifics depend on the Server version, client version, and Server config.

The other WebDAV clients you’re using likely do not. They’ll be limited by the mixture of HTTP body/upload size and timeout settings across your web server and reverse proxy.

Apache these days (as opposed to older Apache versions) will limit a single upload (including chunks), to 1 GiB by default, but you can adjust that.

Are you familiar with the large file uploads chapter in the Admin Manual?

When you upload via the laptop, are you using the Desktop client or the Web UI?

You can also test via the web UI on your mobile device, btw.

Thanks; let me clarify and correct one point.

  • I do not use the Desktop client.

  • For large files, my current reliable workflow is:

    • FTP directly to the data directory, then

    • Import via occ files:scan (cron or manual)

  • The Web UI from a laptop is the most reliable interactive upload path I have.

  • Uploads via the official mobile client (and mobile Web UI) are where large uploads consistently fail or stall, even when the phone is on the same LAN as the server.

I’m familiar with the Large File Uploads section of the Admin Manual and have already addressed the typical server-side limits (PHP upload size, memory limits, reverse proxy body size, etc.). That’s why the behavior is puzzling — disk, permissions, and storage are clearly fine, and non-WebDAV ingestion works every time.

What I’m trying to narrow down now is whether this points more toward:

  • Chunked upload handling differences between mobile clients vs desktop browsers

  • Reverse proxy buffering / timeout behavior that disproportionately affects chunk assembly

  • Or mobile OS background/connection handling (Android in particular), even on a local network

If there are Apache or reverse proxy directives that are especially relevant to chunked uploads from mobile clients (beyond LimitRequestBody), or specific logs that are most useful for diagnosing chunk assembly failures, I’m happy to dig into those.

At this point it feels less like a raw size limit and more like an interaction between chunking, processing time, and connection stability on mobile.

Thanks again. Appreciate the direction.