It's always good to have a Plan B. And all Scrum teams do—it's called an abnormal termination.
An abnormal termination is essentially blowing up the sprint and starting a new sprint instead. An abnormal termination is most frequently the result of a dramatic shift in business priorities—something previously considered important is no longer important, or something even more important is discovered.
But an abnormal termination can often be called if the team gets partway into a sprint and discovers that the work is going to take much longer than they'd anticipated in sprint planning. Sometimes a few days of experience with a new technology or in an old part of the code reveals that implementing something will take a lot more effort than previously thought—so much more, in fact, that the product owner may not want the functionality at its new cost.
A question I've skirted around in writing the preceding is: Who decides if an abnormal termination should be invoked?
To me the answer is very clear, but there is a lot of debate about this among Scrum trainers. My opinion is that the product owner makes the call. However, many people say it should be the ScrumMaster. Let's look very practically at why it cannot be the ScrumMaster who makes the decision.
Suppose a ScrumMaster and product owner are at odds over abnormally terminating, with the ScrumMaster in favor of it. If we decide that ScrumMasters are the ones empowered to make the decision, this sprint will be abnormally terminated. The first thing a team does after any abnormal termination is plan a new sprint.
The planning meeting for the new sprint will begin—as all sprint planning meetings do—by asking the product owner what should be worked on. And the product owner will reply, “Exactly what you were working on 10 minutes ago, before the ScrumMaster called for an abnormal termination.”
And there's the problem: A Scrum team works on what the product owner wants. If a Scrum rule gives the ScrumMaster the right to abnormally terminate, a product owner who disagrees with that decision can nullify the abnormal termination by having the team work in the “new” sprint on exactly what they were working on in the abnormally terminated sprint.
So giving authority over the decision to abnormally terminate to ScrumMasters doesn't work. I completely understand the appeal. It makes absolute sense until thinking through the implications, and then we realize it can't work. The decision to abnormally terminate must be given to product owners.
In wrapping up, though, I want to point out that authority over this decision is a bit theoretical. In practice, I've never seen a situation where a product owner, ScrumMaster, and team disagreed over abnormally terminating. Sure, it might take some argument and discussion to create consensus, but I've never seen a situation where the product owner, ScrumMaster, and team cannot come to agreement and need a dispute resolved by an authoritarian decision-maker.