firecracker-microvm/firecracker · error · InvalidAvailIdx
The number of available virtio descriptors {reported_len} is
Error message
The number of available virtio descriptors {reported_len} is greater than queue size: {queue_size}! What it means
Error "The number of available virtio descriptors {reported_len} is greater than queue size: {queue_size}!" thrown in firecracker-microvm/firecracker.
Source
Thrown at src/vmm/src/devices/mod.rs:30
pub mod acpi;
pub mod legacy;
pub mod pci;
pub mod pseudo;
pub mod virtio;
use crate::devices::virtio::net::metrics::NetDeviceMetrics;
use crate::devices::virtio::queue::{InvalidAvailIdx, QueueError};
use crate::devices::virtio::vsock::VsockError;
use crate::logger::{IncMetric, error};
use crate::vstate::interrupts::InterruptError;
// Function used for reporting error in terms of logging
// but also in terms of metrics of net event fails.
// network metrics is reported per device so we need a handle to each net device's
// metrics `net_iface_metrics` to report metrics for that device.
pub(crate) fn report_net_event_fail(net_iface_metrics: &NetDeviceMetrics, err: DeviceError) {
if let DeviceError::InvalidAvailIdx(err) = err {
panic!("{}", err);
}
error!("{:?}", err);
net_iface_metrics.event_fails.inc();
}
#[derive(Debug, thiserror::Error, displaydoc::Display)]
pub enum DeviceError {
/// Failed to read from the TAP device.
FailedReadTap,
/// Failed to signal irq: {0}
FailedSignalingIrq(#[from] InterruptError),
/// IO error: {0}
IoError(io::Error),
/// Device received malformed payload.
MalformedPayload,
/// Device received malformed descriptor.
MalformedDescriptor,
/// Error during queue processing: {0}View on GitHub (pinned to 81b38b9dad)
Solutions
- Fix the guest virtio driver to not report more descriptors than the negotiated queue size.
- Validate descriptor counts against the queue size before processing the virtqueue.
When it happens
Trigger: Thrown at src/vmm/src/devices/mod.rs:32 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of firecracker-microvm/firecracker@81b38b9dad (2026-08-19).
Data as JSON: /api/errors/66d83d59ef0f4d2b.
Report an issue: GitHub.