{"record":{"id":"3c62936d676e9715","repo":"GoogleContainerTools/skaffold","slug":"could-not-prepare-skaffold-filter-w-3c6293","errorCode":null,"errorMessage":"could not prepare `skaffold filter`: %w","messagePattern":"could not prepare `skaffold filter`: %w","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/skaffold/render/renderer/helm/helm.go","lineNumber":142,"sourceCode":"\t\t\"RendererType\": \"helm\",\n\t})\n\n\tmanifests, err := h.generateHelmManifests(ctx, builds)\n\tendTrace()\n\tmanifestListByConfig := manifest.NewManifestListByConfig()\n\tmanifestListByConfig.Add(h.configName, manifests)\n\treturn manifestListByConfig, err\n}\n\nfunc (h Helm) generateHelmManifests(ctx context.Context, builds []graph.Artifact) (manifest.ManifestList, error) {\n\tvar renderedManifests manifest.ManifestList\n\thelmEnv := sUtil.OSEnviron()\n\tvar postRendererArgs []string\n\n\tif len(builds) > 0 {\n\t\tskaffoldBinary, filterEnv, cleanup, err := helm.PrepareSkaffoldFilter(h, builds, []string{})\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"could not prepare `skaffold filter`: %w\", err)\n\t\t}\n\t\tdefer cleanup()\n\n\t\t// need to include current environment, specifically for HOME to lookup ~/.kube/config\n\t\thelmEnv = append(helmEnv, filterEnv...)\n\n\t\tvar cleanUpPostRenderer func()\n\t\tcleanUpPostRenderer, postRendererArgs, err = helm.PreparePostRenderer(ctx, h, skaffoldBinary, h.helmVersion)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif cleanUpPostRenderer != nil {\n\t\t\tdefer cleanUpPostRenderer()\n\t\t}\n\t}\n\n\tfor _, release := range h.config.Releases {\n\t\tm, err := h.generateHelmManifest(ctx, builds, release, helmEnv, postRendererArgs)","sourceCodeStart":124,"sourceCodeEnd":160,"githubUrl":"https://github.com/GoogleContainerTools/skaffold/blob/a1189de023efc32d4b8e11f395acc678aa555011/pkg/skaffold/render/renderer/helm/helm.go#L124-L160","documentation":"generateHelmManifests calls helm.PrepareSkaffoldFilter to set up the `skaffold filter` binary and environment used as a Helm post-renderer when builds exist. Failures (locating the skaffold binary, writing the filter config/env) are wrapped as 'could not prepare `skaffold filter`'.","triggerScenarios":"Running render with a helm renderer and at least one build artifact (len(builds) > 0), causing helm.PrepareSkaffoldFilter(h, builds, []string{}) to fail — typically because it can't resolve the current skaffold binary path or create its filter setup files.","commonSituations":"Skaffold executed via a wrapper (go run, shim, container) where os.Executable is unreliable; restricted temp dir prevents writing the filter artifacts; unusual binary rename or PATH setup in CI.","solutions":["Run the skaffold binary directly from an installed path (not via go run or a symlinked shim)","Ensure TMPDIR is writable and has space so the filter setup can create its files","Check the underlying wrapped error for which preparation step failed (binary lookup vs env files)","As a workaround, run `skaffold render` without builds (or upgrade Skaffold if a known bug matches)"],"exampleFix":"// before: invoked via an unofficial wrapper\n$ my-skaffold-wrapper render\n// after\n$ skaffold render","handlingStrategy":"fallback","validationCode":"exe, err := os.Executable(); err == nil && fileExists(exe) || echo 'skaffold binary not resolvable for post-renderer'","typeGuard":null,"tryCatchPattern":"if err != nil && strings.Contains(err.Error(), \"could not prepare `skaffold filter`\") {\n    // fall back to rendering without builds, or run the installed skaffold binary directly\n}","preventionTips":["Run the real installed skaffold binary, not go run or shims","Keep TMPDIR writable in CI containers","Read the wrapped error to identify the failing preparation step"],"tags":["helm","post-renderer","binary","setup"],"backgroundTag":"post-renderer-setup-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"}