{"record":{"id":"c85b10fecd2505e3","repo":"hashicorp/nomad","slug":"canary-count-can-not-be-less-than-zero-d-0","errorCode":null,"errorMessage":"Canary count can not be less than zero: %d < 0","messagePattern":"Canary count can not be less than zero: (.+?) < 0","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"nomad/structs/structs.go","lineNumber":5480,"sourceCode":"}\n\nfunc (u *UpdateStrategy) Validate() error {\n\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))","sourceCodeStart":5462,"sourceCodeEnd":5498,"githubUrl":"https://github.com/hashicorp/nomad/blob/482b49bf1aec006f089bcfc7e632d8f6ac303e5e/nomad/structs/structs.go#L5462-L5498","documentation":"Error \"Canary count can not be less than zero: %d < 0\" thrown in hashicorp/nomad.","triggerScenarios":"Thrown at nomad/structs/structs.go:5480 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"}