hashicorp/nomad · error
no devices match request
Error message
no devices match request
What it means
Returned by the scheduler's deviceAllocator.createOffer when no combination of healthy assignable device instances satisfies the request's constraints/affinities. Devices exist but none match, so no offer can be made.
Source
Thrown at scheduler/feasible/device.go:201
// Set the new highest score
offerScore = choiceScore
// Set the new sum of matching affinity weights
matchedWeights = sumMatchedWeights
// Build the choice
offer = &structs.AllocatedDeviceResource{
Vendor: id.Vendor,
Type: id.Type,
Name: id.Name,
DeviceIDs: assignable,
}
}
// Failed to find a match
if offer == nil {
return nil, 0.0, fmt.Errorf("no devices match request")
}
return offer, matchedWeights, nil
}
// deviceIDMatchesConstraint checks a device instance ID against the constraints
// to ensure we're only assigning instance IDs that match. This is a narrower
// check than nodeDeviceMatches because we've already asserted that the device
// matches and now need to filter by instance ID.
func (d *deviceAllocator) deviceIDMatchesConstraint(id string, constraints structs.Constraints, device *structs.NodeDeviceResource) bool {
// There are no constraints to consider
if len(constraints) == 0 {
return true
}
deviceID := psstructs.NewStringAttribute(id)
View on GitHub (pinned to 482b49bf1a)
Solutions
- Relax the device constraint (correct vendor/type/name values)
- Ensure healthy matching devices are reported by the device plugin
- Move the workload to nodes that have the requested devices
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at scheduler/feasible/device.go:201 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/9ea70686f78e604c.
Report an issue: GitHub.