hashicorp/nomad · error
version must be zero when tagging latest, got: %d
Error message
version must be zero when tagging latest, got: %d
What it means
Guard in Job.TagVersion: the request sets both Latest and an explicit Version; tagging the latest version requires Version to be zero so the two selectors are not contradictory.
Source
Thrown at nomad/job_endpoint.go:2406
j.srv.MeasureRPCRate("job", structs.RateMetricWrite, args)
if authErr != nil {
return structs.ErrPermissionDenied
}
defer metrics.MeasureSince([]string{"nomad", "job", "tag_version"}, time.Now())
aclObj, err := j.srv.ResolveACL(args)
if err != nil {
return err
}
if !aclObj.AllowNsOpAnyOf(args.RequestNamespace(),
acl.NamespaceCapabilitySubmitJob,
acl.NamespaceCapabilityTagJobVersion,
) {
return structs.ErrPermissionDenied
}
if args.Latest && args.Version > 0 {
return fmt.Errorf("version must be zero when tagging latest, got: %d", args.Version)
}
if args.Tag != nil {
args.Tag.TaggedTime = time.Now().UnixNano()
}
_, index, err := j.srv.raftApply(structs.JobVersionTagRequestType, args)
if err != nil {
j.logger.Error("tagging version failed", "error", err)
return err
}
reply.Index = index
if args.Tag != nil {
reply.Name = args.Tag.Name
reply.Description = args.Tag.Description
reply.TaggedTime = args.Tag.TaggedTime
}
View on GitHub (pinned to 482b49bf1a)
Solutions
- Set either latest=true with version 0, or an explicit version without latest
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at nomad/job_endpoint.go:2406 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/c968b8a69b96680b.
Report an issue: GitHub.