hashicorp/nomad · error
job_max_count (%d) cannot be negative
Error message
job_max_count (%d) cannot be negative
What it means
Fires in convertServerConfig while translating agent config: server.job_max_count was set to a negative number, which cannot bound job counts; valid values are zero or positive.
Source
Thrown at command/agent/agent.go:381
if jobMaxPriority < structs.JobDefaultMaxPriority || jobMaxPriority > structs.JobMaxPriority {
return nil, fmt.Errorf("job_max_priority cannot be %d. Must be between %d and %d", *agentConfig.Server.JobMaxPriority, structs.JobDefaultMaxPriority, structs.JobMaxPriority)
}
}
jobDefaultPriority := structs.JobDefaultPriority
if agentConfig.Server.JobDefaultPriority != nil && *agentConfig.Server.JobDefaultPriority != 0 {
jobDefaultPriority = *agentConfig.Server.JobDefaultPriority
if jobDefaultPriority < structs.JobDefaultPriority || jobDefaultPriority >= jobMaxPriority {
return nil, fmt.Errorf("job_default_priority cannot be %d. Must be between %d and %d", *agentConfig.Server.JobDefaultPriority, structs.JobDefaultPriority, jobMaxPriority)
}
}
conf.JobMaxPriority = jobMaxPriority
conf.JobDefaultPriority = jobDefaultPriority
jobMaxCount := structs.JobDefaultMaxCount
if agentConfig.Server.JobMaxCount != nil {
jobMaxCount = *agentConfig.Server.JobMaxCount
if jobMaxCount < 0 {
return nil, fmt.Errorf("job_max_count (%d) cannot be negative", jobMaxCount)
}
}
conf.JobMaxCount = jobMaxCount
if agentConfig.Server.JobTrackedVersions != nil {
if *agentConfig.Server.JobTrackedVersions <= 0 {
return nil, fmt.Errorf("job_tracked_versions must be greater than 0")
}
conf.JobTrackedVersions = *agentConfig.Server.JobTrackedVersions
}
conf.OIDCIssuer = agentConfig.Server.OIDCIssuer
// Set up the bind addresses
rpcAddr, err := net.ResolveTCPAddr("tcp", agentConfig.normalizedAddrs.RPC)
if err != nil {
return nil, fmt.Errorf("Failed to parse RPC address %q: %v", agentConfig.normalizedAddrs.RPC, err)
}View on GitHub (pinned to 482b49bf1a)
Solutions
- Set job_max_count to a non-negative integer
- Remove the option to use the default (structs.JobDefaultMaxCount)
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at command/agent/agent.go:381 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/610f6b32cf898ab8.
Report an issue: GitHub.