{"record":{"id":"9d21729a58ffbe12","repo":"hashicorp/nomad","slug":"unable-to-start-validator-w","errorCode":null,"errorMessage":"unable to start validator: %w","messagePattern":"unable to start validator: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"drivers/exec/driver.go","lineNumber":322,"sourceCode":"\nfunc (d *Driver) SetConfig(cfg *base.Config) error {\n\t// unpack, validate, and set agent plugin config\n\tvar config Config\n\n\tif len(cfg.PluginConfig) != 0 {\n\t\tif err := base.MsgPackDecode(cfg.PluginConfig, &config); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tif err := config.validate(); err != nil {\n\t\treturn err\n\t}\n\n\tif d.userIDValidator == nil {\n\t\tidValidator, err := validators.NewValidator(d.logger, config.DeniedHostUids, config.DeniedHostGids)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"unable to start validator: %w\", err)\n\t\t}\n\n\t\td.userIDValidator = idValidator\n\t}\n\n\td.config = config\n\n\tif cfg != nil && cfg.AgentConfig != nil {\n\t\td.nomadConfig = cfg.AgentConfig.Driver\n\t\td.compute = cfg.AgentConfig.Compute()\n\t}\n\treturn nil\n}\n\nfunc (d *Driver) TaskConfigSchema() (*hclspec.Spec, error) {\n\treturn taskConfigSpec, nil\n}\n","sourceCodeStart":304,"sourceCodeEnd":340,"githubUrl":"https://github.com/hashicorp/nomad/blob/482b49bf1aec006f089bcfc7e632d8f6ac303e5e/drivers/exec/driver.go#L304-L340","documentation":"SetConfig lazily creates a uid/gid validator via validators.NewValidator using the configured DeniedHostUids/DeniedHostGids. If that constructor fails (e.g. malformed uid/gid values that cannot be parsed), SetConfig aborts with \"unable to start validator: %w\" wrapping the cause.","triggerScenarios":"Driver plugin startup when denied_host_uids or denied_host_gids contains entries that NewValidator cannot parse (non-numeric strings, malformed ranges), or the validator's internal init fails.","commonSituations":"HCL plugin config with badly formatted uid/gid lists; mistyped ranges; config templating producing empty/garbage values.","solutions":["Inspect the wrapped cause and fix denied_host_uids/denied_host_gids values in the client plugin config","Use numeric uids/gids or valid ranges only","Remove the options to disable host uid/gid deny lists"],"exampleFix":"// before\nconfig {\n  denied_host_uids = [\"root\", \"1000-abc\"]\n}\n// after\nconfig {\n  denied_host_uids = [\"1000-1100\"]\n}","handlingStrategy":"validation","validationCode":"for _, v := range cfg.DeniedHostUids {\n  if _, err := strconv.ParseUint(v, 10, 32); err != nil {\n    return fmt.Errorf(\"bad denied_host_uids entry %q\", v)\n  }\n}","typeGuard":null,"tryCatchPattern":"if err := driver.SetConfig(cfg); err != nil {\n  var wrapped error\n  if errors.As(err, &wrapped) && strings.Contains(err.Error(), \"unable to start validator\") {\n    log.Printf(\"fix denied_host_uids/gids config: %v\", err)\n  }\n  return err\n}","preventionTips":["Use numeric uids/gids or well-formed ranges in denied_host_uids/denied_host_gids","Validate plugin config before agent startup","Test client config changes on a dev agent first"],"tags":["nomad","exec-driver","configuration","validator"],"backgroundTag":"invalid-driver-config","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"}