GoogleContainerTools/skaffold · error

rendering manifests: %w

Error message

rendering manifests: %w

What it means

Wraps a failure from Runner.Render during `skaffold deploy`. Deploy builds the artifacts, renders the manifests, then deploys; when rendering fails the deploy aborts before touching the cluster. The wrapped errR contains the renderer's own message (kustomize, helm, or kpt failure).

Source

Thrown at cmd/skaffold/app/cmd/deploy.go:58

		WithHouseKeepingMessages().
		NoArgs(doDeploy)
}

func doDeploy(ctx context.Context, out io.Writer) error {
	return withRunner(ctx, out, func(r runner.Runner, configs []util.VersionedConfig) error {
		var artifacts []*latest.Artifact
		for _, cfg := range configs {
			artifacts = append(artifacts, cfg.(*latest.SkaffoldConfig).Build.Artifacts...)
		}
		buildArtifacts, err := getBuildArtifactsAndSetTags(artifacts, r.ApplyDefaultRepo)
		if err != nil {
			tips.PrintUseRunVsDeploy(out)
			return err
		}
		// Render
		manifests, errR := r.Render(ctx, out, buildArtifacts, false)
		if errR != nil {
			return fmt.Errorf("rendering manifests: %w", errR)
		}
		return r.DeployAndLog(ctx, out, buildArtifacts, manifests)
	})
}

View on GitHub (pinned to a1189de023)

Solutions

  1. Read the wrapped renderer error and fix the offending manifest/chart/overlay
  2. Run `skaffold render` alone to reproduce and debug rendering in isolation
  3. Pin or update kustomize/kubectl versions (skaffold uses its own kustomize; check `skaffold version` compatibility)
  4. Verify remote bases and helm repos are reachable

Example fix

// before: skaffold.yaml points at a removed overlay
// skaffold.yaml: kustomize: { paths: ["overlays/staging"] }  # gone
// after: restore or correct the path
 kustomize:
   paths: ["overlays/dev"]
Defensive patterns

Strategy: validation

Validate before calling

# catch render issues before deploy
skaffold render --output /tmp/rendered.yaml || echo "fix manifests first"
kustomize build overlays/dev >/dev/null && echo "kustomize OK"

Try / catch

if err := deploy(); err != nil {
    if strings.Contains(err.Error(), "rendering manifests:") {
        // drop to `skaffold render` for the detailed renderer error
    }
}

Prevention

When it happens

Trigger: `skaffold deploy` (or run/dev reaching deploy) invokes r.Render after a successful build and the renderer returns an error — broken kustomize overlay, helm chart error, kpt failure, or unresolvable remote bases.

Common situations: Deleted or renamed kustomize bases/patches; helm chart values invalid; network failure fetching remote manifests; kustomize/kubectl version mismatch with the manifests.

Related errors


AI-assisted analysis of GoogleContainerTools/skaffold@a1189de023 (2026-09-05). Data as JSON: /api/errors/e67b6373ea3b162a. Report an issue: GitHub.