Wordpress-android: Unclear message if a media was not uploaded

Created on 9 Aug 2019  ·  12Comments  ·  Source: wordpress-mobile/WordPress-Android

This was from https://github.com/wordpress-mobile/WordPress-Android/pull/10319#issuecomment-519909269 and can only be reproduced when using the master-auto-upload branch.

In #10319, we will automatically publish posts if the user has explicitly pressed the _Published_. This now works. However, when a post has pending or failed media uploads, we do not see the “Post will be published next time your device is online” error message as described in https://github.com/wordpress-mobile/WordPress-iOS/issues/12227. We see this instead:

Steps to reproduce

  1. Go offline.
  2. Create a post and add an image. The media should fail to upload.
  3. Press the _Publish_ button. The error shown will not be the usual “Post will be published...” error.
  • [x] @osullivanchris I'm not sure if we have considered this part. Please let us know if you think it should be done in another way.

Decision 2019-Aug-27

This was decided on a Slack conversation. We will limit the retry count to 3.

  • if the post has failed upload (no matter whether it's media or post upload), we'll show "Post couldn't be published. We'll try again later"" and "cancel" action. The text will be yellow and we'll also show grey "Retry" action in case the user wants to invoke the retry manually.

Media upload error:

Retry Number | Post List Error/Warning Message | Next automatic action |
--------|-------|---
0 - 2 | “Post couldn't be published. We'll try again later” | Auto-publish
3 | “Could not upload media. Post not *published.” | Nothing.

Post upload error:

Retry Number | Post List Error/Warning Message | Next automatic action |
--------|-------|---
0 - 2 | “Post couldn't be published. We'll try again later"” | Auto-publish
3 | “Couldn\'t perform operation. Post not *published.” | Nothing.

*Published/submitted/saved/scheduled

Offline Support [Type] Bug

Most helpful comment

I wasn't able to implement this without making significant changes or having an unreliable error handling. We also realized that when we show an upload error, the user can't cancel the auto-upload action, since the "Cancel" action gets replaced with "Retry".

After a discussion with @osullivanchris we decided to do the following in v1 of Offline Support project:

  • if the post has failed upload (no matter whether it's media or post upload), we'll show "Post couldn't be published. We'll try again later"" and "cancel" action. The text will be yellow and we'll also show grey "Retry" action in case the user wants to invoke the retry manually.

Media upload error:

Retry Number | Post List Error/Warning Message | Next automatic action |
--------|-------|---
0 | “Post couldn't be published. We'll try again later"” | Auto-publish
1 | “Post couldn't be published. We'll try again later"” | Auto-publish
2 | “Post couldn't be published. We'll try again later"” | Auto-publish
3 | “Could not upload media. Post not *published.” | Nothing.

Post upload error:

Retry Number | Post List Error/Warning Message | Next automatic action |
--------|-------|---
0 | "Post couldn't be published. We'll try again later" | Auto-publish
1 | “Post couldn't be published. We'll try again later"” | Auto-publish
2 | “Post couldn't be published. We'll try again later"” | Auto-publish
3 | “Couldn\'t perform operation. Post not *published.” | Nothing.

*Published/submitted/saved/scheduled

All 12 comments

@shiki Hey thanks for bringing it up. I chatted to @maxme and @malinajirka about this a while ago IIRC.

Its an unusual case because (AFAIK) we do not know _why_ the media didn't upload.

My ideal case would be

  • we understand if the media isn't uploaded due to internet connection, or for another reason
  • if due to internet connection just treat it the same as any other upload (tell them it will be published when they comes online)

But as far as I'm aware, because we don't know why the media didn't upload we need to generalise the error for both online/offline. So a user could try upload a photo while online and there's some issue with the file, obviously we can't give them that offline error. We need a general 'couldn't upload' error which is why we ended up with this.

@osullivanchris Just an idea:
What if we'd always show something like this or default android upload icon in the top right corner of each post list item when it's about to be automatically uploaded. We'd show it when we display "Post will be published..." but we could show it even in this case. Not all the users would connect the dots right away, but I believe they'd get used to it. Wdyt?

My concern with showing that “Could not upload media” error is because the post may still get automatically published anyway. The user will get surprised because there is no indication that this will happen.

I'm not quite sure how we can fix this in a short time frame though. Could we perhaps tie this to the maximum number of retries? The maximum right now is 10.

https://github.com/wordpress-mobile/WordPress-Android/blob/c25d4aabc76fefe0e4da817afa2d2976f0d2283c/WordPress/src/main/java/org/wordpress/android/ui/uploads/UploadActionUseCase.kt#L16

Maybe we can make that lower. So something like this would be the experience:

Retry Number | Post List Error/Warning Message | Next automatic action |
--------|-------|---
1 | “Post will be published next time your device is online” | Auto-publish
2 | “Post will be published next time your device is online” | Auto-publish
3 | “Could not upload media. Post not published.” | Nothing. Discard _user confirmation_

What if we'd always show something like this or default android upload icon in the top right corner of each post list item when it's about to be automatically uploaded. We'd show it when we display "Post will be published..." but we could show it even in this case. Not all the users would connect the dots right away, but I believe they'd get used to it. Wdyt?

Not a bad idea but I think we have a pattern of displaying text in the same place if there is a relevant status of that post. If I was adding an icon I would add it in-line with the text. I don't think an icon by itself would be enough to explain as the concepts around states and uploading are quite specific and sometimes abstract.

My concern with showing that “Could not upload media” error is because the post may still get automatically published anyway. The user will get surprised because there is no indication that this will happen.

Here I would make a change. I would make an exception that if this 'Could not upload media' error occurs, we do not Autoupload the post until the user resolves the error. For the reason that you stated. It would be a bad experience if you try to publish a photo or some other media and the post publishes without that media.

I'm not quite sure how we can fix this in a short time frame though. Could we perhaps tie this to the maximum number of retries? The maximum right now is 10.

I think it's not a bad idea. I'd need to look into it, but I think it should work without a significant performance impact.

Not a bad idea but I think we have a pattern of displaying text in the same place if there is a relevant status of that post. If I was adding an icon I would add it in-line with the text. I don't think an icon by itself would be enough to explain as the concepts around states and uploading are quite specific and sometimes abstract.
If I was adding an icon I would add it in-line with the text.

Yep, that's something I was thinking about as well. I like having icons wherever possible so it'd definitely be a minor improvement as well. However, it wouldn't help us in solving this issue. I was basically thinking that we could start a new pattern with status icons in the top right corner so we could show more than one statuses at a time -> Eg. Error icon + Auto-Upload icon -> we'd still be showing only the error label, but some users would also see that we'll retry auto-upload without their interaction. But either case we won't make this change now anyway:D I just wanted to share my idea.

It would be a bad experience if you try to publish a photo or some other media and the post publishes without that media.

We never (unless there is a bug) upload or auto-upload a post without its media. So if there is a media file which hasn't been uploaded yet we won't even start uploading/auto-uploading the post itself.
However, the issue is that when there is a failed media we

  1. Show "Could not upload media. Post not published."
  2. We auto-upload/auto-retry the media upload and when it succeeds
  3. We auto-upload the post (in case the user confirmed publishing we'll publish it).
    The issue is that the only message the user saw was "Could not upload media. Post not published." so they might not have expected the post to be published.

The issue is that the only message the user saw was "Could not upload media. Post not published." so they might not have expected the post to be published.

Ah thanks @malinajirka that makes sense to me now!

In that case I think what @shiki suggested around retry numbers and different copy sounds good to me. Only issue with that solution is we could end up with the reverse user scenario that @malinajirka described. A user could see a message saying it _will_ be uploaded when online, and not see the updated message when retry count reaches 3.

A user could see a message saying it will be uploaded when online, and not see the updated message when retry count reaches 3.

This is the current behavior anyway. The auto-upload(retry) is limited to 10 retries. Moreover we show an error notification when an upload fails.

https://github.com/wordpress-mobile/WordPress-Android/issues/10370#issuecomment-520792232 different copy sounds good to me

@osullivanchris Sorry, I got lost in the conversation. What is the different copy?

Decision made in this conversation

Show Post will be published next time your device is online on first two tries of auto-upload. If they fail, replace the message with Could not upload media. Post not published. and suppress auto-upload.

What is the different copy?

I believe Chris meant different copy on 3rd+ retries.

@malinajirka @osullivanchris I updated the description with the decision.

I wasn't able to implement this without making significant changes or having an unreliable error handling. We also realized that when we show an upload error, the user can't cancel the auto-upload action, since the "Cancel" action gets replaced with "Retry".

After a discussion with @osullivanchris we decided to do the following in v1 of Offline Support project:

  • if the post has failed upload (no matter whether it's media or post upload), we'll show "Post couldn't be published. We'll try again later"" and "cancel" action. The text will be yellow and we'll also show grey "Retry" action in case the user wants to invoke the retry manually.

Media upload error:

Retry Number | Post List Error/Warning Message | Next automatic action |
--------|-------|---
0 | “Post couldn't be published. We'll try again later"” | Auto-publish
1 | “Post couldn't be published. We'll try again later"” | Auto-publish
2 | “Post couldn't be published. We'll try again later"” | Auto-publish
3 | “Could not upload media. Post not *published.” | Nothing.

Post upload error:

Retry Number | Post List Error/Warning Message | Next automatic action |
--------|-------|---
0 | "Post couldn't be published. We'll try again later" | Auto-publish
1 | “Post couldn't be published. We'll try again later"” | Auto-publish
2 | “Post couldn't be published. We'll try again later"” | Auto-publish
3 | “Couldn\'t perform operation. Post not *published.” | Nothing.

*Published/submitted/saved/scheduled

Done in #10446

Was this page helpful?
0 / 5 - 0 ratings