{"record":{"id":"90dca0d31b05782b","repo":"GoogleContainerTools/skaffold","slug":"creating-renderer-w","errorCode":null,"errorMessage":"creating renderer: %w","messagePattern":"creating renderer: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/skaffold/runner/new.go","lineNumber":85,"sourceCode":"\t// Always add skaffold-specific labels, except during `skaffold render`\n\tlabeller := label.NewLabeller(runCtx.AddSkaffoldLabels(), runCtx.CustomLabels(), runCtx.GetRunID())\n\ttester, err := getTester(ctx, runCtx, isLocalImage)\n\tif err != nil {\n\t\tendTrace(instrumentation.TraceEndError(err))\n\t\treturn nil, fmt.Errorf(\"creating tester: %w\", err)\n\t}\n\n\tvar deployer deploy.Deployer\n\n\thydrationDir, err := util.GetHydrationDir(runCtx.Opts, runCtx.WorkingDir, true, isKptRendererOrDeployerUsed(runCtx.Pipelines))\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"getting render output path: %w\", err)\n\t}\n\n\trenderer, err := GetRenderer(ctx, runCtx, hydrationDir, labeller.Labels(), runCtx.UsingLegacyHelmDeploy())\n\tif err != nil {\n\t\tendTrace(instrumentation.TraceEndError(err))\n\t\treturn nil, fmt.Errorf(\"creating renderer: %w\", err)\n\t}\n\n\tdeployer, err = GetDeployer(ctx, runCtx, labeller, hydrationDir, runCtx.UsingLegacyHelmDeploy())\n\tif err != nil {\n\t\tendTrace(instrumentation.TraceEndError(err))\n\t\treturn nil, fmt.Errorf(\"creating deployer: %w\", err)\n\t}\n\trOpts := platform.ResolverOpts{\n\t\tKubeContext:               runCtx.KubeContext,\n\t\tCliPlatformsSelection:     runCtx.Opts.Platforms,\n\t\tCheckClusterNodePlatforms: runCtx.CheckClusterNodePlatforms(),\n\t\tDisableMultiPlatformBuild: runCtx.DisableMultiPlatformBuild(),\n\t}\n\n\tplatforms, err := platform.NewResolver(ctx, runCtx.Pipelines.All(), rOpts)\n\tif err != nil {\n\t\tendTrace(instrumentation.TraceEndError(err))\n\t\treturn nil, fmt.Errorf(\"getting target platforms: %w\", err)","sourceCodeStart":67,"sourceCodeEnd":103,"githubUrl":"https://github.com/GoogleContainerTools/skaffold/blob/a1189de023efc32d4b8e11f395acc678aa555011/pkg/skaffold/runner/new.go#L67-L103","documentation":"Fires in NewForConfig when the renderer component (deploy pipeline renderer such as kubectl/kustomize/helm) cannot be constructed from the run context and options. Wraps the renderer factory error, typically invalid renderer configuration in skaffold.yaml or unsupported renderer/option combinations.","triggerScenarios":"skaffold.yaml declares `manifests.render` (or legacy deploy kustomize/helm) that fails to initialize: kustomize/helm/kpt binary not found or incompatible, invalid `transformableResourceSelector`, bad helm release config, or unparseable manifest paths.","commonSituations":"Missing kustomize/kpt/helm binaries on PATH; kustomize version too old for the chosen feature; helm renderer with invalid flags; paths in `manifests:` globs matching nothing after a repo restructure.","solutions":["Read the wrapped error: install/upgrade the required binary (kustomize, kpt, or helm) and ensure it's on PATH.","Validate manifest paths/globs in skaffold.yaml point at existing files.","Run `skaffold diagnose` to check renderer configuration.","If a helm renderer, verify `releases` entries (chart path, name, version) are correct.","Pin or upgrade the skaffold config schema (`apiVersion`) to match your installed skaffold."],"exampleFix":"// before (PATH issue)\n$ skaffold dev\n// creating renderer: getting kustomize version: exec: \"kustomize\": executable file not found in $PATH\n// after\nbrew install kustomize && skaffold dev","handlingStrategy":"validation","validationCode":"for _, bin := range []string{\"kubectl\", \"kustomize\", \"helm\", \"kpt\"} {\n  if _, err := exec.LookPath(bin); err != nil {\n    log.Printf(\"warning: %s not on PATH; renderer may fail\", bin)\n  }\n}","typeGuard":null,"tryCatchPattern":"runner, err := runner.NewForConfig(runCtx)\nif err != nil {\n  if strings.Contains(err.Error(), \"creating renderer\") {\n    return fmt.Errorf(\"renderer setup failed - check manifests config and required binaries: %w\", err)\n  }\n  return err\n}","preventionTips":["Install kustomize/kpt/helm in your dev container and CI image; verify with --version.","Keep manifest paths in skaffold.yaml relative and verified by a glob check in CI.","Run `skaffold diagnose` before releases.","Match tool versions to those required by your skaffold version."],"tags":["config","rendering","kustomize","helm","kpt"],"backgroundTag":"renderer-init-failed","analyzedSha":"a1189de023efc32d4b8e11f395acc678aa555011","analyzedAt":"2026-09-05T12:09:27.064Z","contentChangedAt":"2026-09-05T12:09:27.064Z","schemaVersion":2},"datasetVersion":"2026-09-12T17:17:11.597Z"}