---
title: Volume states
layout: docs
nav: firecracker
toc: false
---
This table explains the possible states for a Fly Volume. A volume may only be in one state at a time.
| | |
|----------------|------------------------------------------------------------------------|
| **creating** | Initial state for a new volume. |
| **created** | Volume is in a stable state with no on-going operations. |
| **extending** | The volume is being extended. |
| **restoring** | The volume is being restored from a snapshot. |
| **enabling\_remote\_export** | The volume fork process is initializing. |
| **hydrating** | The volume is being forked (copied) and is actively hydrating. The volume can be mounted. |
| **recovering** | The volume is being recovered from the `pending_destroy` state. |
| **scheduling_destroy** | The volume is being deleted. |
| **pending_destroy** | The volume is soft deleted. |
## Transitions and states during actions on volumes
- Create a volume: `creating` → `created`
- Restore a volume from a snapshot: `creating` → `restoring` → `created`
- Fork a volume to another host/region: `creating` → `enabling_remote_export` → `hydrating` → `created`
- Extend a volume: `creating` → `extending` → `created`
- Destroy a volume: `creating` → `scheduling_destroy` → `pending_destroy`
- Migrate a volume to a new host (performed by Fly.io): source volume `created` → `pending_destroy`; destination volume [Fork a volume transitions]
## Volumes are soft deleted before being destroyed
We always soft delete volumes before destroying them permanently, so that we can recover them if needed. Soft-deleted volumes are in the `pending_destroy` state.
When you destroy a volume (whether by flyctl commands or the Machines API), the volume stays in the `pending_destroy` state for 24 hours before being permanently deleted.
When we destroy a volume during migration to a new host, the volume stays in the `pending_destroy` state for 1 week before being permanently deleted.
Volume states
This table explains the possible states for a Fly Volume. A volume may only be in one state at a time.
creating
Initial state for a new volume.
created
Volume is in a stable state with no on-going operations.
extending
The volume is being extended.
restoring
The volume is being restored from a snapshot.
enabling_remote_export
The volume fork process is initializing.
hydrating
The volume is being forked (copied) and is actively hydrating. The volume can be mounted.
recovering
The volume is being recovered from the pending_destroy state.
scheduling_destroy
The volume is being deleted.
pending_destroy
The volume is soft deleted.
Transitions and states during actions on volumes
Create a volume: creating → created
Restore a volume from a snapshot: creating → restoring → created
Fork a volume to another host/region: creating → enabling_remote_export → hydrating → created
Extend a volume: creating → extending → created
Destroy a volume: creating → scheduling_destroy → pending_destroy
Migrate a volume to a new host (performed by Fly.io): source volume created → pending_destroy; destination volume [Fork a volume transitions]
Volumes are soft deleted before being destroyed
We always soft delete volumes before destroying them permanently, so that we can recover them if needed. Soft-deleted volumes are in the pending_destroy state.
When you destroy a volume (whether by flyctl commands or the Machines API), the volume stays in the pending_destroy state for 24 hours before being permanently deleted.
When we destroy a volume during migration to a new host, the volume stays in the pending_destroy state for 1 week before being permanently deleted.