The safe approach is to treat a controlled size-and-time test that identifies the failing layer before changing limits, buffering, or network settings as a sequence of observable gates, not a single command.
On a self-hosted photo or media application behind one or more proxies, the practical risk is small uploads succeed but large photos or videos fail, reset, or time out through the reverse proxy. Record the current identity and recovery point, start with the least invasive discriminator, interpret pass and fail results before changing another variable, and stop when storage becomes unstable or the only recoverable copy would be exposed. The workflow below ends only after the original workload succeeds or the evidence reaches an escalation boundary.
Reproduce one upload with a size ladder
Use one client, account, network, hostname, and file type. Upload a small control file, then progressively larger test files while recording exact bytes, duration, browser error, HTTP status, proxy access and error timestamps, application logs, and whether any partial object appears.
Test the same largest file through a trusted direct application endpoint when available. If direct succeeds and proxied fails, the proxy path is implicated; if both fail at the same size or stage, inspect application, storage, or client behavior before changing proxy configuration.
Do not raise every size and timeout limit at once. Preserve current configuration and free-space readings, and stop if testing fills the application data volume or exposes an unprotected backend endpoint.
Distinguish size rejection from elapsed-time failure
An immediate 413 or rejection at a repeatable byte threshold indicates a body-size policy in the first layer returning that status. A 408, 499, 502, 504, or connection reset after a repeatable duration points instead toward client, proxy, upstream, tunnel, or application timeout.
A Traefik community case involving large-upload timeout case shows why the duration and the complete proxy-to-app path matter: a large upload can fail through a tunnel even when ordinary photos and browsing work. Treat the case as a diagnostic signature, not a universal timeout value.
Map every hop that can enforce limits: CDN or tunnel, edge proxy, authentication proxy, application proxy, app server, runtime, and upload endpoint. The first layer that logs or returns the failure owns the next test.
Check buffering, temporary storage, and transport
Observe proxy temporary directories, container writable layers, application upload paths, filesystem capacity, inode availability, and memory while the controlled file uploads. Buffering may consume disk or memory before the application receives the body, so a generous final library volume does not prove the proxy has workspace.
A Nextcloud and Traefik report about multi-layer large upload failure illustrates how the same large-file symptom can span web, application, and proxy layers. Use its multi-layer lesson while keeping your change tied to the status, log timestamp, and resource that actually fails.
If failures vary rather than holding a size or time boundary, compare Ethernet, Wi-Fi, VPN, and direct LAN paths. Retain one stable route and test MTU, packet loss, and tunnel behavior separately instead of increasing application limits to mask transport resets.
Apply one matched fix and repeat the original upload
Change only the confirmed boundary: a scoped body-size limit, the specific request or response timeout, the buffering mode, or the temporary-storage allocation. Keep authentication, TLS, and unrelated virtual hosts unchanged, then reload the proxy and verify the effective configuration.
The ZimaSpace workflow for direct-versus-proxied path test shows how direct-versus-proxied comparison isolates the proxy path after a restart. Apply the same boundary here, then repeat the exact large file twice and verify final size, checksum where available, metadata processing, and cleanup of temporary files.
Restart the proxy once and repeat the upload from the original remote path. Close the incident only when small and large files succeed without new exposure or storage pressure; roll back if the limit change affects other hosts, and escalate with status, timing, layer, and resource evidence when no boundary is repeatable.
Support & Tips
More to Read

Live TV Recording Storage Guide for Capacity, Retention, and Cleanup
Measure real recordings, reserve headroom, combine age and capacity limits, and prove the oldest eligible program is removed before storage fills.

Home Media Metadata Recovery Workflow After a Database Restore
Protect the restored state, verify media identity and paths, then repair missing artwork or matches in a pilot library before broad metadata changes.

Jellyfin Client Compatibility Checklist for Audio, Video, and Subtitles
Test representative files one variable at a time and record Direct Play, remux, audio conversion, video transcode, or failure for every client.

