Failed uploads stay in queue and never try again
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 2.5k
- Forks
- 1k
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 13
Description
Expected behaviour
If the server is temporarily unable to accept an upload (for example, permissions or file-size restrictions) of one or more files/images, a user should be able to manually trigger a retry for queued files.
Actual behaviour
During a server migration last month, 140 images/videos got stuck in queue. Each queue element looks like:
| <More | Transfers | |
|---|---|---|
| [IMG] | 18-12-20 16-04-04 7127.jpg Error code 413 |
O |
| [IMG] | 18-12-20 16-04-15 7128.jpg Error code 413 |
O |
| ... | ||
| [IMG] | 19-01-03 19-22-50 7573.jpg You don't have permission to complete the... |
O |
| [IMG] | 18-12-30-14-22-03 7328.jpg Internal server error |
O |
The circle at right has a square "stop" button but that only cancels the transfer of that item, permanently. There is no other option, so I leave the queue in place hoping for a fix.
Steps to reproduce
- Install an nginx reverse-proxy in front of Nextcloud server
- Set the client-body-buffer-size / proxy-body-size nginx parameters to a value smaller than the images you have on your phone, say 100K
- Take a few pictures
- Start Nextcloud IOS app and look for the 413 errors to show up
- Adjust the nginx parameters back to a normal level (unlimited, or >=1G)
- Go back into this IOS app and see the queued pictures remain stuck
iOS version
12.1.1
App version
2.22.7.4
Server configuration
16GB RAM 1TB SSD gigE Ethernet
Operating system:
Ubuntu 18.04
Web server:
nginx from quay.io kubernetes plus the apache2 built into docker image
Database:
Internal sqlite
PHP version:
7.2.13 built into official image
Nextcloud version: (see Nextcloud admin page)
NextCloud 15.0.0 official docker image, 4GB allocated
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the iOS upload queue that retains failed 413, permission, and server-error items, then trace the existing stop/cancel control. Reproduce the nginx size-limit failure and verify that, after the limit is raised, a user can manually retry queued files without losing them.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100