GoogleContainerTools/skaffold · error
processing word: %w
Error message
processing word: %w
What it means
Fires in extractCopyCommands when shell-like word expansion of a WORKDIR instruction's value fails (slex.ProcessWord), e.g. malformed variable references or unmatched quotes/escapes in the WORKDIR argument given the parsed env set. Dockerfile parsing itself succeeded; only the word expansion failed.
Source
Thrown at pkg/skaffold/docker/parse.go:295
// was already changed.
if !stages[strings.ToLower(from.image)] {
img, err := RetrieveImage(ctx, from.image, cfg)
if err == nil {
workdir = img.Config.WorkingDir
} else if _, ok, err := isOldImageManifestProblem(cfg, err); !ok {
return nil, err
}
if workdir == "" {
workdir = "/"
}
}
if onlyLastImage {
copied = nil
}
case command.Workdir:
value, _, err := slex.ProcessWord(node.Next.Value, shell.EnvsFromSlice(envs))
if err != nil {
return nil, fmt.Errorf("processing word: %w", err)
}
workdir = resolveDir(workdir, value)
case command.Add, command.Copy:
cpCmd, err := readCopyCommand(node, envs, workdir)
if err != nil {
return nil, err
}
if cpCmd != nil && len(cpCmd.srcs) > 0 {
copied = append(copied, cpCmd)
}
case command.Env:
// one env command may define multiple variables
for node := node.Next; node != nil && node.Next != nil && node.Next.Next != nil; node = node.Next.Next.Next {
envs = append(envs, fmt.Sprintf("%s=%s", node.Value, unquote(node.Next.Value)))
}
}
}View on GitHub (pinned to a1189de023)
Solutions
- Simplify the WORKDIR value (avoid complex nested variable expansions)
- Define required ARG/ENV variables earlier so expansion resolves
- Fix unbalanced quotes or escape characters in the WORKDIR instruction
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at pkg/skaffold/docker/parse.go:295 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of GoogleContainerTools/skaffold@a1189de023 (2026-09-05).
Data as JSON: /api/errors/1d23d00ccb1e0464.
Report an issue: GitHub.