# Suspend and Resume

Suspend and Resume with Persistent and Non-persistent Accounts

# 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.

# Persistent

## Suspend/Resume Administration

The administrator can control the timeouts that will suspend a persistent desktop VM and they can also manually suspend or resume a session on a persistent desktop VM.

<p class="callout info"> Enabling Suspend/Resume requires specific configurations. **Please review the [Requirements and Considerations](https://docs.difr.com/books/platform-administrators-guide/page/suspend-and-resume#bkmrk-requirements) before proceeding** to avoid unexpected issues.</p>

### Time-based Suspend

Within the Frame Account Dashboard, navigate to **Settings &gt; Session Settings**. Under **Time Limits**, you can adjust the two values:

- **User Inactivity Timeout**: Upon reaching this timeout value, the session will become disconnected.
- **Idle Timeout**: Upon reaching this timeout value after a session is disconnected, the session will automatically be suspended.
    
    <figure>[![image.png](https://docs.difr.com/uploads/images/gallery/2026-01/scaled-1680-/UW0image.png)](https://docs.difr.com/uploads/images/gallery/2026-01/UW0image.png)
    
    <figcaption>Session Settings - Time Limits</figcaption></figure>

### Manual Suspend and Resume

Within the Frame Account Dashboard, navigate to **VMs** in the left-hand navigation column.

To suspend a session on a production workload VM with a status of `In session`, click the kebab menu to the right of the `Status` column and click **Suspend**. If the user is in session when the administrator suspends their desktop, the user will be disconnected from their session and returned to their Launchpad. The Launchpad will indicate that the session is being suspended.

<figure class="admin-ui" id="bkmrk-vms---manual-suspend">![VMs - Manual Suspend of Session](https://docs.difr.com/uploads/images/gallery/2025-10/persistent-new2.png)

<figcaption>VMs - Manual Suspend of Session</figcaption></figure>To resume a suspended session, click the ellipsis to the right of the `Status` column and click **Resume**. If the user is at their Launchpad, they will see the message “Your session is resuming” (instead of the “Resume” button) after the administrator has clicked **Resume**.

# Non-Persistent

## Suspend/Resume Administration

This feature introduces a new deployment model that combines the user experience benefits of persistent accounts with the centralized image management advantages of non-persistent accounts. Admins can now enable Suspend/Resume on a per-Instance Pool basis by navigating to: `_Capacity > Select Pool > Suspend Preferences_.`

Additionally, admins can configure a custom reboot schedule to automatically restart idle VMs and those with suspended sessions at regular intervals. To enhance visibility, the **VMs page now displays an "S" icon** to indicate which VMs have Suspend enabled.

![VMs Page](https://docs.difr.com/uploads/images/gallery/2025-10/np-vms-page.png)

Account Dashboard &gt; VMs Page

<details id="bkmrk-important%21-enabling-"><summary>Important!</summary>

Enabling Suspend/Resume requires specific configurations. Please review the Requirements and Considerations before proceeding to avoid unexpected issues.

</details>## Additional Considerations

Before proceeding, review the additional considerations listed below that are specific to non-persistent Frame deployments:

- **Capacity:** Max Capacity for Instance Pools with this feature enabled will likely need to be adjusted. Max Capacity should be equal to the number of unique users that use the pool on a monthly basis. **Customers with Per VM subscription entitlements enabling this feature may require an increase in entitlements and/or result in overage.**
- **Idle Timeout:** When this feature is enabled, the default behavior when Idle Timeout is reached is to suspend the session instead of closing the session.
- **Automatic Reboot:** For security purposes, we require customers to schedule an automatic reboot of suspended, non-persistent VMs **at least once every 4 weeks** if a Publish was run since the last reboot. Any idle VMs and VMs with a suspended session will be rebooted at the time of scheduled reboot. VMs with an active session will not be rebooted.

## Enable Suspend/Resume

### Existing Pools

To enable the Suspend/Resume feature for an existing pool, navigate to the Capacity page of your Account Dashboard. From there, select the desired pool. Lastly, click the kebab menu and choose **Suspend Preferences** as shown below:

<figure id="bkmrk-navigate-to-the-capa">![Enable - Existing](https://docs.difr.com/uploads/images/gallery/2025-10/existing-pool.png)

<figcaption>Navigate to the Capacity page. Note in the screenshot the pool with Suspend/Resume already enabled is marked with an **"S"** icon.</figcaption></figure>From there, simply enable the toggle and click **Confirm**. A new window will appear where Suspend Preferences can be configured. If you're ready to proceed, skip ahead to the next section.

### New Pools

To enable the Suspend/Resume feature for a New Pool, navigate to the Capacity page of your Account Dashboard. Click **+ Add Instance Pool** at the top of the page.

<figure id="bkmrk-click-%2B-add-instance">![Suspend Preferences - Add Pool](https://docs.difr.com/uploads/images/gallery/2025-10/add-pool.png)

<figcaption>Click **+ Add Instance Pool**</figcaption></figure>From there, a configuration window will appear. Enable the **Suspend** toggle.

<figure id="bkmrk--1">![Suspend Preferences](https://docs.difr.com/uploads/images/gallery/2025-10/pool-mar2025.png)

</figure><details id="bkmrk-reminder-as-mentione"><summary>Reminder</summary>

As mentioned in the "Additional Considerations" section above:

- The **Max Capacity** for Instance Pools with this feature enable will **likely need to be adjusted**. Max Capacity should be equal to the number of unique users that use the pool on a monthly basis.
- Customers with **Per VM subscription entitlements** enabling this feature **may require an increase in entitlements and/or result in overage**.

</details>Move on to the section below to learn how to configure your Suspend Preferences.

## Configure Suspend Preferences

For security purposes, customers *must* schedule an automatic reboot for suspended non-persistent VMs at least once every four weeks. To prevent data loss, we recommend notifying end users in advance of scheduled reboots.

<figure id="bkmrk-configure-your-prefe">![Suspend Preferences - Existing](https://docs.difr.com/uploads/images/gallery/2025-10/pool-mar2025.png)

<figcaption>Configure your preferences.</figcaption></figure>Next, we'll configure scheduled reboots for suspended VMs. Below are the available settings:

- **Scheduled Reboot Day:** Select the day of the week when VMs will automatically reboot.
- **Scheduled Reboot Time:** Specify the exact time for the reboot to occur.
- **Scheduled Reboot Time Zone:** Choose the time zone for the scheduled reboot.
- **Scheduled Reboot Interval:** Set how often the reboot should occur: 
    - Weekly (every 1 week)
    - Bi-weekly (every 2 weeks)
    - Every 3 weeks
    - Every 4 weeks
- **Reboot Notification Period:** The time period when **Dizzion DaaS** should start notifying end users about the imminent **VM reboot**.
- **Skip if No Publish Was Run Since Last Reboot:**
    - **Unchecked:** The reboot will occur at the scheduled time, regardless of whether a publish has been performed.
    - **Checked:** The reboot will only occur if a publish was completed within the selected interval. If no publish occurs, the reboot will be skipped but rescheduled for the next cycle.

Once the desired settings are configured, click **Confirm** to save your changes.

And that's it! You have successfully configured Suspend/Resume for your non-persistent Frame account.