hashicorp/nomad · error
no devices available
Error message
no devices available
What it means
Scheduler device allocator guard in createOffer: the node has no device groups at all, so the requested device cannot be offered. This makes the node infeasible for the device request rather than crashing the allocator.
Source
Thrown at scheduler/feasible/device.go:109
if equalBusID(busID, instanceBusID) {
result := int(node) == m.memoryNode
return result
}
}
}
}
}
return false
}
// createOffer takes a device request and returns an assignment as well as a
// score for the assignment. If no assignment is possible, an error is
// returned explaining why.
func (d *deviceAllocator) createOffer(mem *memoryNodeMatcher, ask *structs.RequestedDevice) (out *structs.AllocatedDeviceResource, score float64, err error) {
// Try to hot path
if len(d.Devices) == 0 {
return nil, 0.0, fmt.Errorf("no devices available")
}
if ask.Count == 0 {
return nil, 0.0, fmt.Errorf("invalid request of zero devices")
}
// Hold the current best offer
var offer *structs.AllocatedDeviceResource
var offerScore float64
var matchedWeights float64
// Determine the devices that are feasible based on availability and
// constraints
for id, devInst := range d.Devices {
// Check if the device works
if !nodeDeviceMatches(d.ctx, devInst.Device, ask) {
continue
}
View on GitHub (pinned to 482b49bf1a)
Solutions
- Schedule the job on nodes running the required device plugin
- Remove the device request if it is not actually needed
- Verify the device plugin is fingerprinting devices on the target nodes
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at scheduler/feasible/device.go:109 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of hashicorp/nomad@482b49bf1a (2026-09-04).
Data as JSON: /api/errors/34031387e2c55246.
Report an issue: GitHub.