{"record":{"id":"bf872df67c0e31b8","repo":"hashicorp/nomad","slug":"stagger-must-be-greater-than-zero-v","errorCode":null,"errorMessage":"Stagger must be greater than zero: %v","messagePattern":"Stagger must be greater than zero: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"nomad/structs/structs.go","lineNumber":5501,"sourceCode":"\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))\n\t}\n\n\treturn mErr.ErrorOrNil()\n}\n\nfunc (u *UpdateStrategy) IsEmpty() bool {\n\tif u == nil {\n\t\treturn true\n\t}\n\n\t// When the Job is transformed from api to struct, the Update Strategy block is\n\t// copied into the existing task groups, the only things that are passed along\n\t// are MaxParallel and Stagger, because they are enforced at job level.\n\t// That is why checking if MaxParallel is zero is enough to know if the\n\t// update block is empty.\n\n\treturn u.MaxParallel == 0\n}","sourceCodeStart":5483,"sourceCodeEnd":5519,"githubUrl":"https://github.com/hashicorp/nomad/blob/482b49bf1aec006f089bcfc7e632d8f6ac303e5e/nomad/structs/structs.go#L5483-L5519","documentation":"Error \"Stagger must be greater than zero: %v\" thrown in hashicorp/nomad.","triggerScenarios":"Thrown at nomad/structs/structs.go:5501 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"}