Given the case that a user is presented a modal dialog that displays an installation process (or something similar). If the process would normally take a few seconds but can potentially take longer, should I offer a "Cancel" button to give the user full control?

I've seen installers that disable the Cancel button and others that can do a rollback after Cancel is clicked. But what if one does not have the option of a full rollback? Should I ...

  • trap the user in the dialog until the process is completed or a timeout is reached
  • offer the Cancel button anyways, with the drawback of possibly generating data garbage or an invalid installation
  • What type of software is this? Personal use? Enterprise-grade?
    – Brian
    May 20, 2015 at 13:30
  • It's a windows custom enterprise solution to create und upload project files to a document-oriented database. Since it's a client-server application, the process can take longer sometimes, depending on the connection. Also possible disconnects have to be considered.
    – J_rgen
    May 21, 2015 at 6:57

4 Answers 4


It very much depends on the type of your application the operation it is doing. Ideally user should always be in control, but there are situations when you will want to keep control when you are making critical changes.

Firstly, you must inform user that a following operation might take X amount of time and that she may not be able to use the system.

enter image description here

When you tell such a thing, this puts a certain amount of stress on the user. You should try your best to alleviate that stress. Best way is to show the time left, and what exactly is the action you are performing. While doing so, your messages should avoid jargon and meet the target audience's vocabulary.

A windows update may not be an precise example for this situation but it does tell you how Microsoft handled it in Windows 7.

enter image description here

Although here Windows can not estimate the time required, it tries to break up the operation in steps so that user has some tangible progress to hold on to. This is very essential for many reasons. I have seen vague progress bars which just run to oblivion without offering any solace to users. You must avoid that.

Considering your use case, after user feedback, you might want to push the message of delay when the operation does not complete in threshold time. I agree that users would already have started the process, but if most of the times the operation is going to take few seconds, there is no reason to always show a message that they can't use the system. After a few seconds you can pop up and mention this seems to be taking longer than usual. You might need a users opinion on this.

  • 1
    Thanks for the examples. I agree that showing the "can't undo" message every time would become annoying since it would only take longer in special cases and mentioning that it takes longer than usual could actually fit my case. I'm also still analyzing the possibility of having a timeout and the length of it.
    – J_rgen
    May 20, 2015 at 15:07

If there is no safe way for the user to leave the process then you really should make them wait until it is complete. Leaving them with a faulty system is potentially more damaging to the software's reputation than making them wait for an extra 20 minutes for a correct and perfect instal.

However, I assume that they've gone through some sort of process to get to that point (agree to EULA, select instal location, etc), that would be that time to clearly tell them how much time it is expected to take in the worst cases (this will also add a little expectation management giving users who don't experience worst case a pleasant surprise when the process completes more quickly than expected).

If you must offer a "cancel at any cost" option then you will need to clearly message the user about the cost to their system (bad data, disk errors, failing software, etc) with an "Are you sure?" dialogue so that they can make an informed choice. You might also need to include a legal disclaimer depending on the amount of damage you could potentially do to their system.

  • Forcing the user to be "stuck" in something feels very wrong to me. I like your idea of having an actionable confirmation message, but I think the user should always have a way out.
    – Brian
    May 20, 2015 at 13:34
  • It is certainly a tricky proposition and normally I would agree with you but since the "way out" could be more damaging to the experience than sitting through a short wait I decided to promote the wait over the cancel. Damaging a user's system will probably stick in their memory for years but making them sit for an extra 20 mins will probably be forgotten by the end of the day AND you still have the chance to adjust their experience with the software they took the time to install. Leaving them with nothing but bad data and broken software seems the worse option to me May 20, 2015 at 13:54

I believe the correct action would be to explain to the user before going through with the irreversible action, that the action is irreversible.

"Doing this is permanent / This action is un-doable / You can not roll back this change" -> OK /cancel Or something like that depending on what kind of users you have and what jargon they do or don't know.

Don't trap a user on a load screen if avoidable. If the load time really is so high that you have to expect the user to want to cancel out of it; then we can now acknowledge that the load time is very high. So let's make the user prepared for this long, irreversible load time and at least give them the option to start it in their own time.

Presenting junk data would only be okay if CRUD'ing / manipulating data was normal/easy/expected/not a hassel. But it usually is considering we as UX designers should value every single click we cost on the user.


If possible, present the user with a "Finish Later" option on the dialog, instead of "Cancel". If the install takes longer than they want right now, or they have something important they need to do right now that the install process is interfering with, they can choose that option and then you let them continue the next time the install process is initiated.

  • This would still interrupt the process and generate garabge data until the user decides to continue. Is it is now, my software is able to complete a half-finished operation by just restarting it.
    – J_rgen
    May 21, 2015 at 6:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.