hashicorp/nomad · error
all servers should be running version %v or later to use dyn
Error message
all servers should be running version %v or later to use dynamic host volumes
What it means
The HostVolume.Create RPC requires every server in the region to support dynamic host volumes (introduced behind a minimum version). The endpoint checks ServersMeetMinimumVersion against minVersionDynamicHostVolumes and fails with this message if any server is too old, refusing the create so the cluster state stays consistent.
Source
Thrown at nomad/host_volume_endpoint.go:200
func (v *HostVolume) Create(args *structs.HostVolumeCreateRequest, reply *structs.HostVolumeCreateResponse) error {
authErr := v.srv.Authenticate(v.ctx, args)
if done, err := v.srv.forward("HostVolume.Create", args, args, reply); done {
return err
}
v.srv.MeasureRPCRate("host_volume", structs.RateMetricWrite, args)
if authErr != nil {
return structs.ErrPermissionDenied
}
defer metrics.MeasureSince([]string{"nomad", "host_volume", "create"}, time.Now())
if !v.srv.peersCache.ServersMeetMinimumVersion(
v.srv.Region(),
minVersionDynamicHostVolumes,
false,
) {
return fmt.Errorf(
"all servers should be running version %v or later to use dynamic host volumes",
minVersionDynamicHostVolumes,
)
}
allowVolume := acl.NamespaceValidator(acl.NamespaceCapabilityHostVolumeCreate)
aclObj, err := v.srv.ResolveACL(args)
if err != nil {
return err
}
if args.Volume == nil {
return fmt.Errorf("missing volume definition")
}
vol := args.Volume
if vol.Namespace == "" {
vol.Namespace = args.RequestNamespace()View on GitHub (pinned to 482b49bf1a)
Solutions
- Run `nomad server members` and find servers below the required version.
- Upgrade the outdated servers to the minimum version that supports dynamic host volumes.
- After upgrading, wait for the peers cache to refresh (or restart the client connection) and retry the create.
- If an old server is decommissioned but still listed, remove it from the cluster so the version check passes.
Example fix
# before: check fleet versions nomad server members # upgrade lagging server, then retry nomad host volume create -name web-vol -host-path /srv/volumes/web
Defensive patterns
Strategy: validation
Validate before calling
// check minimum version across the fleet before dynamic host volume create
for _, m := range members.Members {
if m.Tags["build"] < "1.7.0" { // minVersionDynamicHostVolumes
return fmt.Errorf("server %s too old for dynamic host volumes", m.Name)
}
} Try / catch
err := createHostVolume(req)
if err != nil && strings.Contains(err.Error(), "all servers should be running version") {
// pause creates, complete upgrade, then retry
} Prevention
- Verify `nomad server members` shows all servers at the required version
- Gate dynamic host volume usage behind cluster-upgrade completion checks
- Remove decommissioned old servers from the raft pool
When it happens
Trigger: Calling `nomad host volume create` / the HostVolume Create RPC while at least one server in the region runs a Nomad version older than minVersionDynamicHostVolumes.
Common situations: Rolling upgrades that stalled mid-way, forgotten secondary servers left on old versions, or operators attempting dynamic host volumes before completing the upgrade.
Related errors
- all servers should be running version %v or later to use cli
- %s error: %w
- could not place volume %q: %w
- no servers
- ErrPluginNotExists
AI-assisted analysis of hashicorp/nomad@482b49bf1a (2026-09-04).
Data as JSON: /api/errors/7feb8e21605f6e73.
Report an issue: GitHub.