{"record":{"id":"3106d992239920cc","repo":"hashicorp/nomad","slug":"failed-to-parse-consul-auth-config","errorCode":null,"errorMessage":"Failed to parse Consul Auth config","messagePattern":"Failed to parse Consul Auth config","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"client/allocrunner/taskrunner/template/template.go","lineNumber":935,"sourceCode":"\t\tif config.ConsulConfig.Namespace != \"\" {\n\t\t\tconf.Consul.Namespace = &config.ConsulConfig.Namespace\n\t\t}\n\n\t\tif config.ConsulConfig.EnableSSL != nil && *config.ConsulConfig.EnableSSL {\n\t\t\tverify := config.ConsulConfig.VerifySSL != nil && *config.ConsulConfig.VerifySSL\n\t\t\tconf.Consul.SSL = &ctconf.SSLConfig{\n\t\t\t\tEnabled: new(true),\n\t\t\t\tVerify:  &verify,\n\t\t\t\tCert:    &config.ConsulConfig.CertFile,\n\t\t\t\tKey:     &config.ConsulConfig.KeyFile,\n\t\t\t\tCaCert:  &config.ConsulConfig.CAFile,\n\t\t\t}\n\t\t}\n\n\t\tif config.ConsulConfig.Auth != \"\" {\n\t\t\tparts := strings.SplitN(config.ConsulConfig.Auth, \":\", 2)\n\t\t\tif len(parts) != 2 {\n\t\t\t\treturn nil, fmt.Errorf(\"Failed to parse Consul Auth config\")\n\t\t\t}\n\n\t\t\tconf.Consul.Auth = &ctconf.AuthConfig{\n\t\t\t\tEnabled:  new(true),\n\t\t\t\tUsername: &parts[0],\n\t\t\t\tPassword: &parts[1],\n\t\t\t}\n\t\t}\n\n\t\t// Set the user-specified Consul RetryConfig\n\t\tif cc.TemplateConfig.ConsulRetry != nil {\n\t\t\tvar err error\n\t\t\terr = cc.TemplateConfig.ConsulRetry.Validate()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tconf.Consul.Retry, err = cc.TemplateConfig.ConsulRetry.ToConsulTemplate()\n\t\t\tif err != nil {","sourceCodeStart":917,"sourceCodeEnd":953,"githubUrl":"https://github.com/hashicorp/nomad/blob/482b49bf1aec006f089bcfc7e632d8f6ac303e5e/client/allocrunner/taskrunner/template/template.go#L917-L953","documentation":"In newRunnerConfig, when the client's Consul config has Auth set, it is split on ':' and turned into consul-template SSL/auth config; this error fires when that auth string cannot be converted into the consul-template auth configuration, blocking template rendering that depends on Consul.","triggerScenarios":"Thrown at client/allocrunner/taskrunner/template/template.go:935 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Correct the consul Auth setting in the Nomad agent client config (expected \"user:pass\" form)","Check that CertFile/KeyFile/CAFile referenced by the SSL config exist and are readable"],"exampleFix":null,"handlingStrategy":"fallback","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"}