hashicorp/nomad · error
Invalid client config given
Error message
Invalid client config given
What it means
Sentinel validation guard in TaskTemplateManagerConfig.Validate: the Client config pointer is nil, meaning the template manager has no client configuration to derive Consul/Vault/template settings from. Raised by NewTaskTemplateManager on an incompletely populated config.
Source
Thrown at client/allocrunner/taskrunner/template/template.go:160
// RenderFunc allows custom rendering of templated data, and overrides the
// Nomad custom RenderFunc used for sandboxing. This is currently used by
// the secrets block to hold all templated data in memory.
RenderFunc renderer.Renderer
}
// Validate validates the configuration.
func (c *TaskTemplateManagerConfig) Validate() error {
if c == nil {
return fmt.Errorf("Nil config passed")
} else if c.UnblockCh == nil {
return fmt.Errorf("Invalid unblock channel given")
} else if c.Lifecycle == nil {
return fmt.Errorf("Invalid lifecycle hooks given")
} else if c.Events == nil {
return fmt.Errorf("Invalid event hook given")
} else if c.ClientConfig == nil {
return fmt.Errorf("Invalid client config given")
} else if c.TaskDir == "" {
return fmt.Errorf("Invalid task directory given: %q", c.TaskDir)
} else if c.EnvBuilder == nil {
return fmt.Errorf("Invalid task environment given")
} else if c.MaxTemplateEventRate == 0 {
return fmt.Errorf("Invalid max template event rate given")
}
// Once is a runner config, but in Nomad it is set per template, so all
// templates given to a runner should have the same value for Once.
var once bool
for i, t := range c.Templates {
if i == 0 {
once = t.Once
} else if t.Once != once {
return fmt.Errorf("All templates should have same Once value")
}
}View on GitHub (pinned to 482b49bf1a)
Solutions
- Populate the Client field of TaskTemplateManagerConfig before calling NewTaskTemplateManager
- Verify the client config is loaded and attached in the taskrunner setup path
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at client/allocrunner/taskrunner/template/template.go:160 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of hashicorp/nomad@482b49bf1a (2026-09-04).
Data as JSON: /api/errors/78b4fa3216c389a0.
Report an issue: GitHub.