{"record":{"id":"330c3b68a686064b","repo":"hashicorp/nomad","slug":"auto-promote-requires-a-canary-count-greater-than","errorCode":null,"errorMessage":"Auto Promote requires a Canary count greater than zero","messagePattern":"Auto Promote requires a Canary count greater than zero","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"nomad/structs/structs.go","lineNumber":5483,"sourceCode":"\tif u == nil {\n\t\treturn nil\n\t}\n\n\tvar mErr multierror.Error\n\tswitch u.HealthCheck {\n\tcase UpdateStrategyHealthCheck_Checks, UpdateStrategyHealthCheck_TaskStates, UpdateStrategyHealthCheck_Manual:\n\tdefault:\n\t\t_ = multierror.Append(&mErr, fmt.Errorf(\"Invalid health check given: %q\", u.HealthCheck))\n\t}\n\n\tif u.MaxParallel < 0 {\n\t\t_ = multierror.Append(&mErr, fmt.Errorf(\"Max parallel can not be less than zero: %d < 0\", u.MaxParallel))\n\t}\n\tif u.Canary < 0 {\n\t\t_ = multierror.Append(&mErr, fmt.Errorf(\"Canary count can not be less than zero: %d < 0\", u.Canary))\n\t}\n\tif u.Canary == 0 && u.AutoPromote {\n\t\t_ = multierror.Append(&mErr, fmt.Errorf(\"Auto Promote requires a Canary count greater than zero\"))\n\t}\n\tif u.MinHealthyTime < 0 {\n\t\t_ = multierror.Append(&mErr, fmt.Errorf(\"Minimum healthy time may not be less than zero: %v\", u.MinHealthyTime))\n\t}\n\tif u.HealthyDeadline <= 0 {\n\t\t_ = multierror.Append(&mErr, fmt.Errorf(\"Healthy deadline must be greater than zero: %v\", u.HealthyDeadline))\n\t}\n\tif u.ProgressDeadline < 0 {\n\t\t_ = multierror.Append(&mErr, fmt.Errorf(\"Progress deadline must be zero or greater: %v\", u.ProgressDeadline))\n\t}\n\tif u.MinHealthyTime >= u.HealthyDeadline {\n\t\t_ = multierror.Append(&mErr, fmt.Errorf(\"Minimum healthy time must be less than healthy deadline: %v > %v\", u.MinHealthyTime, u.HealthyDeadline))\n\t}\n\tif u.ProgressDeadline != 0 && u.HealthyDeadline >= u.ProgressDeadline {\n\t\t_ = multierror.Append(&mErr, fmt.Errorf(\"Healthy deadline must be less than progress deadline: %v > %v\", u.HealthyDeadline, u.ProgressDeadline))\n\t}\n\tif u.Stagger <= 0 {\n\t\t_ = multierror.Append(&mErr, fmt.Errorf(\"Stagger must be greater than zero: %v\", u.Stagger))","sourceCodeStart":5465,"sourceCodeEnd":5501,"githubUrl":"https://github.com/hashicorp/nomad/blob/482b49bf1aec006f089bcfc7e632d8f6ac303e5e/nomad/structs/structs.go#L5465-L5501","documentation":"Error \"Auto Promote requires a Canary count greater than zero\" thrown in hashicorp/nomad.","triggerScenarios":"Thrown at nomad/structs/structs.go:5483 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"482b49bf1aec006f089bcfc7e632d8f6ac303e5e","analyzedAt":"2026-09-04T07:54:14.808Z","contentChangedAt":"2026-09-04T07:54:14.808Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}