# Suspend and Resume

The Frame Suspend and Resume feature allows users to pause their session and pick up right where they left off at a later time. When a session is suspended, its state is saved to disk and restored upon resumption, ensuring continuity. This functionality is similar to putting a laptop to sleep and waking it up to continue working without losing progress. Frame supports Suspend and Resume across AWS, Azure, and GCP.

Suspending a user session is a big improvement in user experience. This feature not only ensures session continuity but also reduces costs, as suspended compute instances are not billed[\*](#considerations) by public cloud providers.

## Considerations

Before enabling Suspend/Resume, consider the following factors to ensure optimal use and avoid potential issues:

- **Billing:** While public cloud providers do not charge for suspended compute instances, **storage providers continue to bill for the boot disk**.\*
- **Terminology:** In this document, we will use the term **"Suspend,"** although AWS and Azure use "Hibernate." GCP also refers to this as "Suspend".
- **Feature Interaction:**
    - **Admins:** VM states **must be managed exclusively through Frame interfaces**. Using built-in Windows functions or cloud provider tools may cause Suspend/Resume failures. All OS and cloud interactions should be handled via Frame.
    - **End Users:** End users must initiate Suspend/Resume through Frame Terminal controls. Using Windows sleep or hibernate functions may cause session state loss and potential data corruption.
- **Product Release Stage:** Suspend/Resume has been available for Persistent Desktops for some time. However, support for default, Non-Persistent Accounts is a newly introduced &lt;StatusBadge type="Early Access"/&gt; feature. As a result, functionality may be subject to change. To provide clearer guidance, this documentation is now split into separate sections for Persistent and Non-Persistent environments. Be sure to refer to the correct section based on your Frame account type.

<p class="callout warning"> **Caution!**   
 Availability Notice Suspend/Resume is not universally available across all instance types. Supported instance types vary by cloud provider (AWS, Azure, GCP). Refer to the **[Cloud Provider-specific Requirements section](https://docs.difr.com/books/platform-administrators-guide/chapter/cloud-providers-daas-only)** for more details.</p>

## Requirements

In order to use the Suspend/Resume feature, the following requirements must be satisfied:

- A [Persistent Desktop](https://docs.difr.com/books/platform-administrators-guide/page/persistent-desktops-administration) or **Default, non-persistent** Frame Account using AWS, Azure, or GCP.
- CPU-only instances. GPU-backed instances are currently not supported by any of the infrastructure providers.
- Only available on Windows operating systems.
- Ensure sufficient free disk space, equal to or greater than the instance's RAM, to store session data during suspension.
- Frame Administrators must have [sufficient permissions](https://docs.difr.com/books/platform-administrators-guide/page/authorization) to use Suspend/Resume through the Frame Account Dashboard.

### Cloud Provider-specific Requirements

In addition to the Frame requirements mentioned above, each public cloud provider has its own requirements. You are expected to review and understand your cloud provider’s specific requirements.

**AWS offers Hibernation for most instance types, *except for EC2 instance types that have more than 16 GB of RAM or any EC2 instance type that is GPU-enabled.* Please review the following:**

- [Prerequisites for Amazon EC2 Instance Hibernation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html)
- [Hibernate your Amazon EC2 Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html)

**Azure offers Hibernation for limited instance types. Please review the following:**

- [Overview](https://learn.microsoft.com/en-us/azure/virtual-machines/hibernate-resume)
- [Supported VM Sizes](https://learn.microsoft.com/en-us/azure/virtual-machines/hibernate-resume#supported-vm-sizes)

**Google Cloud Platform offers Suspend functionality across most instance types. One important limitation of GCP is that *if a machine is suspended for more than 60 days it will be terminated.***

- [Suspend or Resume](https://cloud.google.com/compute/docs/instances/suspend-resume-instance)

## Functionality &amp; User Experience

### How Suspend/Resume Works

Suspend/Resume allows users to pause their session and continue from the same point later. This feature works the same for both Persistent and Default, Non-Persistent accounts and can be initiated in two ways:

#### Timers (Automatic Suspension)

- **User Inactivity Timeout:** If a user is inactive for a set period, the system disconnects the session and starts the Idle Timeout countdown. Once the countdown expires, the session is automatically suspended.

#### User and Administrator Actions (Manual Suspension)

- **User Actions:** Users can manually suspend their session by using the Frame status bar controls. To resume a session, they return to the Launchpad and select Resume.
- **Administrator Actions:** Admins can suspend or resume sessions from the "VMs" page in the Frame Account Dashboard.

## User Experience

Once the feature is enabled, users can easily suspend their session from the Frame Terminal or resume a session from Launchpad.

## Administration

While the functionality and end-user experience remain the same, the configuration and administration steps differ based on the frame account type.