1. A computer system comprising the following: one or more processors; system memory; at least one computer storage device having stored thereon computer-executable instructions that, when executed by the one or more processors, causes the computing system to perform a method for handling faults during an upgrade, the method comprising the following: an act of pausing an initiated service upgrade, the service upgrade being configured to upgrade one or more virtual machines from an older service version to a newer service version, the virtual machines being located in one or more different upgrade domains, by upgrading each virtual machine within an upgrade domain before proceeding to the next upgrade domain; an act of determining that a virtual machine instance has faulted; an act of determining whether the faulted virtual machine instance is in an upgrade domain that is currently being upgraded, is in an upgrade domain that has already been upgraded, or is in an upgrade domain that has yet to be upgraded to the newer service version; an act of restoring the faulted virtual machine instance using at least one of the newer service version and the older service version, based on the determination; and an act of resuming the initiated service upgrade.