{"record":{"id":"076204fcf62daa2d","repo":"hashicorp/nomad","slug":"failed-to-parse-creation-grace-duration-v","errorCode":null,"errorMessage":"failed to parse 'creation_grace' duration: %v","messagePattern":"failed to parse 'creation_grace' duration: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"drivers/docker/config.go","lineNumber":798,"sourceCode":"\t\tdur, err := time.ParseDuration(d.config.GC.ImageDelay)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed to parse 'image_delay' duration: %v\", err)\n\t\t}\n\t\td.config.GC.imageDelayDuration = dur\n\t}\n\n\tif len(d.config.GC.DanglingContainers.PeriodStr) > 0 {\n\t\tdur, err := time.ParseDuration(d.config.GC.DanglingContainers.PeriodStr)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed to parse 'period' duration: %v\", err)\n\t\t}\n\t\td.config.GC.DanglingContainers.period = dur\n\t}\n\n\tif len(d.config.GC.DanglingContainers.CreationGraceStr) > 0 {\n\t\tdur, err := time.ParseDuration(d.config.GC.DanglingContainers.CreationGraceStr)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed to parse 'creation_grace' duration: %v\", err)\n\t\t}\n\t\tif dur < danglingContainersCreationGraceMinimum {\n\t\t\treturn fmt.Errorf(\"creation_grace is less than minimum, %v\", danglingContainersCreationGraceMinimum)\n\t\t}\n\t\td.config.GC.DanglingContainers.CreationGrace = dur\n\t}\n\n\tif len(d.config.PullActivityTimeout) > 0 {\n\t\tdur, err := time.ParseDuration(d.config.PullActivityTimeout)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed to parse 'pull_activity_timeout' duration: %v\", err)\n\t\t}\n\t\tif dur < pullActivityTimeoutMinimum {\n\t\t\treturn fmt.Errorf(\"pull_activity_timeout is less than minimum, %v\", pullActivityTimeoutMinimum)\n\t\t}\n\t\td.config.pullActivityTimeoutDuration = dur\n\t}\n","sourceCodeStart":780,"sourceCodeEnd":816,"githubUrl":"https://github.com/hashicorp/nomad/blob/482b49bf1aec006f089bcfc7e632d8f6ac303e5e/drivers/docker/config.go#L780-L816","documentation":"The dangling_containers creation_grace option must parse as a duration and must be at least danglingContainersCreationGraceMinimum (5m). This error fires when the parsed value is smaller than that minimum, rejecting configs that could cause dangling containers to be reaped while still legitimately starting.","triggerScenarios":"gc { dangling_containers { creation_grace = \"1s\" } } — parses fine but is below the driver's minimum.","commonSituations":"Users trying to aggressively GC containers by setting very small grace periods; misreading creation_grace as an unprotected setting.","solutions":["Raise creation_grace to at least the minimum (5m).","Leave creation_grace unset to use the default.","Check the driver constant danglingContainersCreationGraceMinimum in your Nomad version."],"exampleFix":"// before\ndangling_containers {\n  creation_grace = \"30s\"\n}\n// after\ndangling_containers {\n  creation_grace = \"5m\"\n}","handlingStrategy":"validation","validationCode":"d, err := time.ParseDuration(cfg.CreationGrace)\nif err == nil && d < 5*time.Minute {\n  return fmt.Errorf(\"creation_grace must be >= 5m\")\n}","typeGuard":null,"tryCatchPattern":"dur, err := time.ParseDuration(s)\nif err != nil { return err }\nif dur < danglingContainersCreationGraceMinimum {\n  return fmt.Errorf(\"creation_grace is less than minimum, %v\", danglingContainersCreationGraceMinimum)\n}","preventionTips":["Keep creation_grace at or above 5m.","Prefer the default over very small values.","Document the floor in your config templates."],"tags":["docker","duration","config","nomad"],"backgroundTag":"invalid-duration-format","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"}