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
- Do not snapshot a microVM that uses a vhost-user block device; detach it or use a supported block backend before snapshotting.
- 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)