hashicorp/nomad · error
cannot use signals with env var templates
Error message
cannot use signals with env var templates
What it means
Appended by template validation when change_mode is "signal" and envvars templating is enabled. Signals cannot re-render environment variables of an already-started process, so the combination is invalid.
Source
Thrown at nomad/structs/structs.go:8988
}
// Verify the destination doesn't escape
escaped, err := escapingfs.PathEscapesAllocViaRelative("task", t.DestPath)
if err != nil {
mErr.Errors = append(mErr.Errors, fmt.Errorf("invalid destination path: %v", err))
} else if escaped {
mErr.Errors = append(mErr.Errors, fmt.Errorf("destination escapes allocation directory"))
}
// Verify a proper change mode
switch t.ChangeMode {
case TemplateChangeModeNoop, TemplateChangeModeRestart:
case TemplateChangeModeSignal:
if t.ChangeSignal == "" {
_ = multierror.Append(&mErr, fmt.Errorf("Must specify signal value when change mode is signal"))
}
if t.Envvars {
_ = multierror.Append(&mErr, fmt.Errorf("cannot use signals with env var templates"))
}
case TemplateChangeModeScript:
if t.ChangeScript == nil {
_ = multierror.Append(&mErr, fmt.Errorf("must specify change script configuration value when change mode is script"))
}
if err = t.ChangeScript.Validate(); err != nil {
_ = multierror.Append(&mErr, err)
}
default:
_ = multierror.Append(&mErr, TemplateChangeModeInvalidError)
}
// Verify the splay is positive
if t.Splay < 0 {
_ = multierror.Append(&mErr, fmt.Errorf("Must specify positive splay value"))
}
View on GitHub (pinned to 482b49bf1a)
Solutions
- Remove envvars = true and write the rendered template to a file destination
- Use change_mode = "restart" or "noop" if you need env-var templates
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at nomad/structs/structs.go:8988 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/5c6768004fdde609.
Report an issue: GitHub.