Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upload Failed, no retry option #340

Closed
rnveach opened this issue Dec 28, 2013 · 49 comments
Closed

Upload Failed, no retry option #340

rnveach opened this issue Dec 28, 2013 · 49 comments

Comments

@rnveach
Copy link

rnveach commented Dec 28, 2013

I am using owncloud android 1.5.2 on android 4.3.1.
When I try to upload a image from the camera using instant upload, or for any upload for that matter, and it fails to upload for whatever reason, there is no option to retry the upload. When you click on the fail notification, it just shows you the name of the file that failed and a dismiss.
There should be an option for retrying the upload that the user can opt to do. This would allow them to retry the upload without having them go and hunt down the file manually.

screenshot_2013-12-28-11-16-02

@davivel
Copy link
Contributor

davivel commented Jan 8, 2014

This should be unnecessary when we finally get to implement the pending functionality of the offline_uploads_ branches. But no idea when that will happen.

So let's keep it open by now.

@Cathryne
Copy link

+1 When using Orbot's transparent proxying (even with OwnCloud not included to be proxied), whenever Internet connection is established, the oC client tries to upload and fails. Manually restarting it just a few seconds later works. But because apparently Orbot interferes somehow, an upload delay or retry would be very helpful.

Version infos: Orbot v1.3.0.6RC2 (but earlier ones as well), oC v1.5.4, Fairphone OS 1.1

@LukeOwlclaw
Copy link

@davivel @jancborchardt
What is the exact design idea for uploads?

I'd say:
Uploads should be retried until it succeeds, if one of following errors occurs:
- server not available
- authentication failure (a prompt for re-enter password needed here, does it already exist?)
- certificate failure (prompt...)

In all other cases upload should be cancelled. This should mainly be:
- local file gone

This requires a PendingUploadActivity class.

That should not be too hard. I would like to see to it. If uploading is done right, this solves instant upload issue #646 as well. And not distinguishing between upload and instantUpload sound like a good design.

I just checked the offline_uploads_* branches. They are more than 1 year old. Starting from develop is probably easier.

@rnveach
Copy link
Author

rnveach commented Oct 31, 2014

@LukeOwncloud

Uploads should be retried until it succeeds

If some data was transmitted, maybe not an "retry until succeed" mentality just to prevent an endless loop and wasting limited user data bandiwdth.
Me personally, am fine with 1-2 retries (maybe a type of resume feature if some data did get through), and then asking the user to retry or dismiss. This could be a customizable setting.

@LukeOwlclaw
Copy link

Yes, endless looping has to be prevent. However, when you say "upload", you expect the file to upload. There has to be some kind of tradeoff. The PendingUploadActivity must list failed uploads and let the user to manually retry.

@LukeOwlclaw
Copy link

@davivel @jancborchardt
What is your view on this issue? I already had a close look at the source code. InstantUpload and Upload it a little tangled up, but there is actually everything available to make Uploads retry when failed and then to make InstantUpload a normal Upload. It is going to be a little work to sort it all out. I am willing to do it, but want to make sure that this contribution is welcomed. I would hate to that PR not being accepted.

And btw, I think this is a big issue for all who have bad connections or switch them off often. So importance should be above normal.

@jancborchardt
Copy link
Member

@lukeowncloud your proposal sounds good. Making uploads and instant uploads behave the same seems correct.

@davivel please comment here. Cc @rperezb

@Bazon
Copy link

Bazon commented Nov 3, 2014

Really thanks for caring about that!
The scenario which happened severall times to me was:
Being on vacation / holiday, taking lots of photos, being in reach of a WLAN for some time, but not enough time to upload all photos --> upload fails which was happening during loosing WLAN connection.
So it's not only about bad connections, it's also about moving in and out of WLANs.

@enoch85
Copy link
Member

enoch85 commented Nov 3, 2014

A workaround:

  1. Download Foldesync from Google Play.
  2. Set Foldersync to sync the DCIM folder on your phone to the Instant Upload folder on the server.
  3. Download ES Filemanager and put in credentials for WebDAV in the FTP view.
  4. Set Foldersync to delete the sourcefile once it have made an successful upload
  5. Delete the ownCloud Android app, you have no need for it anymore. (Until these issues are being fixed)

Now you have your ownCloud on your phone, but nothing gets downloaded two times, and you don´t have to delete the "misc" folder all the time due to memory is getting full on your phone. Your pictures and videos are uploaded correctly and you will never have to be worried about anything failing to upload.

How it works:

  • Foldersync handles the sync, and also deletes the source file (if you want) and Foldersync retries to sync until success, or with a time-lapse of for example 30 minutes, or only on WIFI, or whatever you choose. Foldersync has alot of options to choose from, and also two-way sync.
  • With ES Filemanager you browse your files, without downloading them. The user chooses to do what he/she wants. And of course, you can download the files if you want. Also, you could make a shortcut directly to your mobile desktop directly to the folder you want.

Could not get better. :) Btw, both apps I linked are free.

Fixes #646 #588 #340 #592 #640 #601 #346 #156 #375 #704 #643 #554 #532 #465 #349 #308 #125 #78 #41 #6 #3 👍

@jancborchardt
Copy link
Member

@enoch85 sorry but this is not a fix, it’s a workaround. We were in a good discussion for a solution here so it would be good to not derail that.

@davivel
Copy link
Contributor

davivel commented Nov 4, 2014

My view is:

  • Instant uploads are just a case of uploads; should be handled the same way as much as possible; agreed here.
    • No PendingUploadsActivity, but UploadsActivity; showing not just failed uploads, but also recently finished and in progress uploads; this is a design formerly discussed, and I think @jancborchardt will be OK ; of course, starting with just failed uploads is fine; the rest may be added later.
  • The UploadsActvitiy should allow the user to retry any failed upload (manually), or cancel it; no upload should be silently canceled by the app.
  • The app needs to remember not only that an upload failed, but the reason. Whatever reason it is.
  • Automatic retries of uploads are supplementary to this; both may be handled separately.
  • A new table needs to be added to the database to track any upload (instant or not); the UplaodsActivity should use it as it's source of information; the automatic retry of uploads would use it too, and other pending or possible features (such as pausing / resuming uploads manually or automatically, or reprioritizing them) would use it also.

And later part of all this may have sense for downloads too, and we may start to talk about "Transfers"

@davivel
Copy link
Contributor

davivel commented Nov 4, 2014

@LukeOwncloud , if you start to work on this (or any other), I'd suggest:

  1. Assign yourself this issue in the control 'Assignee' in Github.
  2. Consider working directly in the ownCloud repository, instead of in your own; this way we may help you with it sooner in the process. Just create a new branch from 'develop', push it to the repository, and work on it.

@LukeOwlclaw
Copy link

@davivel Perfect, your view is is exactly what I had in mind, too. I'll start a new branch. BTW, can we get rid of the old offline_* branches?

@LukeOwlclaw LukeOwlclaw self-assigned this Nov 4, 2014
@davivel
Copy link
Contributor

davivel commented Nov 4, 2014

Probably, but we can do it later. I'd like to have a look first to what we have there.

@enoch85
Copy link
Member

enoch85 commented Nov 4, 2014

👍 👍 @LukeOwncloud You are my hero.
@jancborchardt I'll get back to you later to describe what I mean with my post. To think about until then, is it important to listen to the users, and why?

@jancborchardt
Copy link
Member

@enoch85 I get that your comment provides a solution, but it’s not really useful in this discussion. It’s a workaround that only a tiny percentage of people will be able to (or bother to) set up. But yeah, we got a plan now so all is well. :)

@LukeOwlclaw
Copy link

@davivel
Please have a look at branch reliable_uploads. There is a rough draft of the UploadListActivity and the FileUploadService. Please review. For discussion I opened a separate issue #762

@Science4583
Copy link

As Bazon commented, I just got back from a business trip where I took a bunch of photos and am missing more than half, yet there's no way for me to tell it to go through and upload all the missing photos. I believe this is the same situation this bug is for, and only the second of two items preventing me from fully switching from Dropbox.

Great work guys, I love this product.

@jancborchardt
Copy link
Member

@davivel can you have a look at the branch @LukeOwncloud mentioned?

@davivel
Copy link
Contributor

davivel commented Jan 26, 2015

Sorry, I know we are very late with this one, we'll see it ASAP. I tried to look fast past week but there are tons on changes in that branch.

Let's see if this week is possible. Stay tuned.

@jancborchardt
Copy link
Member

So is this part of the current milestone then, or not? ;) I don’t see a milestone set on this issue.

@masensio
Copy link

@jancborchardt, the PR #919 is in the current milestone https://github.com/owncloud/android/milestones/1.8-current.

PR #919 contains the fix for this issue.

@MTRichards MTRichards added this to the 1.8-current milestone Aug 20, 2015
@MTRichards
Copy link

there. I set it now.

@davivel davivel modified the milestones: 1.8.1-next, 1.8-current Aug 28, 2015
@LukeOwlclaw
Copy link

Is here any progress?

I know that it is part of milestone 1.8.1 but I am worried that it might be delayed again. To me a working upload seems much more important than being able to share files.

@strugee
Copy link

strugee commented Nov 11, 2015

@LukeOwncloud I feel the same, but the ownCloud people have stated that the sharing thing is a paid support contract thing, so it needs to be done soon.

@davivel
Copy link
Contributor

davivel commented Nov 12, 2015

With the current schedule there is no way we can have this done for https://github.com/owncloud/android/milestones/1.9-current .

Moving to next release.

cc @rperezb , @MTRichards , @cmonteroluque

I'm really sorry, @LukeOwncloud . I'd also like the progress of the app was different. Anyway, let's keep some optimism, we'll need it to keep pushing forward in the right way.

@davivel davivel modified the milestones: 1.9.1-next, 1.9-current Nov 12, 2015
@MTRichards
Copy link

Hey team! As an update, we are hoping to finish the internal sharing for the next release, and then clean up a few bugs and jump on to folder sync and this. The milestone is set for the 1.9.1 release, and the next release will be 1.9.0 in under 10 days. I apologize for the delay, but we are prioritizing this next for review.

@strugee
Copy link

strugee commented Nov 13, 2015

@MTRichards thanks for the update. It's really nice to hear from you guys once in a while; personally I feel way more engaged with the community that way.

Keep up the great work and good luck with the 1.9.0 release :)

@davivel
Copy link
Contributor

davivel commented Jan 29, 2016

I'm really sorry, but this need to be delayed once again.

@davivel davivel modified the milestones: 1.9.2-next, 1.9.1-current Jan 29, 2016
@mcronce
Copy link

mcronce commented Jan 30, 2016

What do we need to do to make it happen? Is there more code work that needs to be done?

@rperezb
Copy link

rperezb commented Feb 1, 2016

Thx for your interest @mcronce
As @davivel has said #919 (comment) we are currently working on it, yes, more core it´s needed, latest changes on the UI and then test it,

we do appreciate your help testing it. either you may compile the app using the branch: https://github.com/owncloud/android/tree/reliable_uploads_actions_uploads_view
Or perhaps, @tobiasKaminsky may include this on the beta app, once the development is done,

Thx!

@tobiasKaminsky
Copy link
Contributor

Just give me a ping when the developement is ready and I am happy to include it in beta.

@mcronce
Copy link

mcronce commented Feb 1, 2016

@rperezb I'm not much of a tester but I can give it a shot ;) I'd be more helpful writing code if you need a hand on that one

@tobiasKaminsky
Copy link
Contributor

@mcronce I think the whole "reliable upload" thing is too much for devs that use their spare time for it.
That is, at least for me, the reason why I did not tried to update @LukeOwncloud branch.

But there are many others open feature requests and bug reports where you can help.
The best way is to choose one issue/bug and discuss it first here on github and then implement it.

@rperezb
Copy link

rperezb commented Feb 10, 2016

@mcronce yes, your willingness is appreciated!
We have a label "contributions are welcome" https://github.com/owncloud/android/issues?q=is%3Aopen+is%3Aissue+label%3A%22contributions+are+welcome%22 please check any of them.
YEs, reliable uploads implies several changes, we are working on it on parts, first part is on the branch: https://github.com/owncloud/android/tree/reliable_uploads_actions_uploads_view we plan to go back to work on this branch after releasing the new version, today!

@enoch85
Copy link
Member

enoch85 commented Mar 30, 2016

Now when the "reliable upload" branch is merged, this is an "easy fix" right?

@davivel
Copy link
Contributor

davivel commented Mar 31, 2016

@enoch85 , I would even say that it's done :)

Click on error notification now leads to uploads view. There you can tap on any failed upload to retry it.

🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests