firecracker-microvm/firecracker · error

VhostUserBlock does not support snapshotting yet

Error message

VhostUserBlock does not support snapshotting yet

What it means

Error "VhostUserBlock does not support snapshotting yet" thrown in firecracker-microvm/firecracker.

Solutions

  1. Do not snapshot a microVM that uses a vhost-user block device; detach it or use a supported block backend before snapshotting.
  2. Track upstream vhost-user snapshot support and upgrade when available.

When it happens

Trigger: Thrown at src/vmm/src/devices/virtio/block/vhost_user/device.rs:243 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of firecracker-microvm/firecracker@23b09b943f (2026-08-19). Data as JSON: /api/errors/8dafaea5201c12c2. Report an issue: GitHub.

Appendix: source

Thrown at src/vmm/src/devices/virtio/block/vhost_user/device.rs:253

            queues,
            queue_evts,
            device_state,

            id: config.drive_id,
            partuuid: config.partuuid,
            cache_type: config.cache_type,
            read_only,
            root_device: config.is_root_device,

            vu_handle,
            vu_acked_protocol_features: acked_protocol_features,
            metrics,
        })
    }

    /// Prepare device for being snapshotted.
    pub fn prepare_save(&mut self) {
        unimplemented!("VhostUserBlock does not support snapshotting yet");
    }

    pub fn config(&self) -> VhostUserBlockConfig {
        VhostUserBlockConfig {
            drive_id: self.id.clone(),
            partuuid: self.partuuid.clone(),
            is_root_device: self.root_device,
            cache_type: self.cache_type,
            socket: self.vu_handle.socket_path.clone(),
        }
    }

    pub fn config_update(&mut self) -> Result<(), VhostUserBlockError> {
        let start_time = get_time_us(ClockType::Monotonic);
        let interrupt = self
            .device_state
            .active_state()
            .expect("Device is not initialized")

View on GitHub (pinned to 23b09b943f)