{"record":{"id":"a57c187395633e77","repo":"hashicorp/nomad","slug":"job-default-priority-cannot-be-d-must-be-between","errorCode":null,"errorMessage":"job_default_priority cannot be %d. Must be between %d and %d","messagePattern":"job_default_priority cannot be (.+?)\\. Must be between (.+?) and (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"command/agent/agent.go","lineNumber":371,"sourceCode":"\t\t\tconf.AutopilotConfig.DisableUpgradeMigration = *agentConfig.Autopilot.DisableUpgradeMigration\n\t\t}\n\t\tif agentConfig.Autopilot.EnableCustomUpgrades != nil {\n\t\t\tconf.AutopilotConfig.EnableCustomUpgrades = *agentConfig.Autopilot.EnableCustomUpgrades\n\t\t}\n\t}\n\n\tjobMaxPriority := structs.JobDefaultMaxPriority\n\tif agentConfig.Server.JobMaxPriority != nil && *agentConfig.Server.JobMaxPriority != 0 {\n\t\tjobMaxPriority = *agentConfig.Server.JobMaxPriority\n\t\tif jobMaxPriority < structs.JobDefaultMaxPriority || jobMaxPriority > structs.JobMaxPriority {\n\t\t\treturn nil, fmt.Errorf(\"job_max_priority cannot be %d. Must be between %d and %d\", *agentConfig.Server.JobMaxPriority, structs.JobDefaultMaxPriority, structs.JobMaxPriority)\n\t\t}\n\t}\n\tjobDefaultPriority := structs.JobDefaultPriority\n\tif agentConfig.Server.JobDefaultPriority != nil && *agentConfig.Server.JobDefaultPriority != 0 {\n\t\tjobDefaultPriority = *agentConfig.Server.JobDefaultPriority\n\t\tif jobDefaultPriority < structs.JobDefaultPriority || jobDefaultPriority >= jobMaxPriority {\n\t\t\treturn nil, fmt.Errorf(\"job_default_priority cannot be %d. Must be between %d and %d\", *agentConfig.Server.JobDefaultPriority, structs.JobDefaultPriority, jobMaxPriority)\n\t\t}\n\t}\n\tconf.JobMaxPriority = jobMaxPriority\n\tconf.JobDefaultPriority = jobDefaultPriority\n\n\tjobMaxCount := structs.JobDefaultMaxCount\n\tif agentConfig.Server.JobMaxCount != nil {\n\t\tjobMaxCount = *agentConfig.Server.JobMaxCount\n\t\tif jobMaxCount < 0 {\n\t\t\treturn nil, fmt.Errorf(\"job_max_count (%d) cannot be negative\", jobMaxCount)\n\t\t}\n\t}\n\tconf.JobMaxCount = jobMaxCount\n\n\tif agentConfig.Server.JobTrackedVersions != nil {\n\t\tif *agentConfig.Server.JobTrackedVersions <= 0 {\n\t\t\treturn nil, fmt.Errorf(\"job_tracked_versions must be greater than 0\")\n\t\t}","sourceCodeStart":353,"sourceCodeEnd":389,"githubUrl":"https://github.com/hashicorp/nomad/blob/482b49bf1aec006f089bcfc7e632d8f6ac303e5e/command/agent/agent.go#L353-L389","documentation":"The default job priority must lie within [structs.JobDefaultPriority, jobMaxPriority) — it must not exceed the configured max and must be at least the built-in default (80? structs.JobDefaultPriority). convertServerConfig validates it after resolving job_max_priority.","triggerScenarios":"Setting server { job_default_priority = N } where N != 0 and (N < structs.JobDefaultPriority or N >= the effective jobMaxPriority), during agent start or reload.","commonSituations":"Setting default priority equal to or above max priority; lowering max below the existing default via a separate job_max_priority override; templating generating defaults >= caps.","solutions":["Set job_default_priority so that structs.JobDefaultPriority <= N < job_max_priority (e.g. default 80 with max 100).","If raising the default, also raise job_max_priority above it.","Omit the option to use the built-in default priority."],"exampleFix":"// before\nserver {\n  job_max_priority     = 100\n  job_default_priority = 100\n}\n// after\nserver {\n  job_max_priority     = 100\n  job_default_priority = 80\n}","handlingStrategy":"validation","validationCode":"// Go: pre-validate default < max\nmaxP := structs.JobDefaultMaxPriority\nif p := cfg.Server.JobMaxPriority; p != nil && *p != 0 { maxP = *p }\nif d := cfg.Server.JobDefaultPriority; d != nil && *d != 0 &&\n   (*d < structs.JobDefaultPriority || *d >= maxP) {\n    return fmt.Errorf(\"job_default_priority %d outside [%d,%d)\", *d, structs.JobDefaultPriority, maxP)\n}","typeGuard":null,"tryCatchPattern":"conf, err := convertServerConfig(agentCfg)\nif err != nil {\n    if strings.Contains(err.Error(), \"job_default_priority cannot be\") {\n        return fmt.Errorf(\"job_default_priority must be >= default and < job_max_priority: %w\", err)\n    }\n    return err\n}","preventionTips":["Always review job_default_priority together with job_max_priority.","Keep the default strictly below the max (e.g. 80 vs 100).","Omit the option to use structs.JobDefaultPriority."],"tags":["nomad","jobs","config","validation"],"backgroundTag":"config-value-out-of-range","analyzedSha":"482b49bf1aec006f089bcfc7e632d8f6ac303e5e","analyzedAt":"2026-09-04T07:54:14.808Z","contentChangedAt":"2026-09-04T07:54:14.808Z","schemaVersion":2},"datasetVersion":"2026-09-08T15:18:49.778Z"}