hashicorp/nomad · error
invalid path %q
Error message
invalid path %q
What it means
ValidatePath guard: the variable path fails the validVariablePath regex — it contains characters or shapes not permitted in variable paths (e.g. invalid segments). The offending path is quoted in the message.
Source
Thrown at nomad/structs/variables.go:418
}
if vd.Items.Size() > maxVariableSize {
return errQuotaExhausted
}
if err := ValidatePath(vd.Path); err != nil {
return err
}
return vd.Lock.Validate()
}
func ValidatePath(path string) error {
if len(path) == 0 {
return fmt.Errorf("variable requires path")
}
if !validVariablePath.MatchString(path) {
return fmt.Errorf("invalid path %q", path)
}
parts := strings.Split(path, "/")
if parts[0] != "nomad" {
return nil
}
// Don't allow a variable with path "nomad"
if len(parts) == 1 {
return fmt.Errorf(`"nomad" is a reserved top-level directory path, but you may write variables to "nomad/jobs", "nomad/job-templates", "nomad/sentinel", or below`)
}
switch {
case parts[1] == "jobs" || parts[1] == "sentinel":
// Any path including "nomad/jobs" or "nomad/sentinel" is valid
return nil
case parts[1] == "job-templates" && len(parts) == 3:View on GitHub (pinned to 482b49bf1a)
Solutions
- Use only path-safe characters and slash-separated segments
- Avoid empty segments (double slashes) and invalid characters in the path
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at nomad/structs/variables.go:418 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/4164f8525fc56657.
Report an issue: GitHub.