GoogleContainerTools/skaffold · error

transforming manifests

Error message

transforming manifests: %w

What it means

Wraps a failure from debugging.ApplyDebuggingTransforms on the loaded manifest list. It means the debugging transform (injecting debug helpers, rewriting registries) could not be applied to the manifests.

Solutions

  1. Check the wrapped error for which manifest/image failed transformation
  2. Ensure manifest images match the provided build artifacts
  3. Verify the debug-helpers registry is reachable and image names are rewriteable
  4. Re-run with debug logging to see the failing transform
Defensive patterns

Strategy: try-catch

Try / catch

if err != nil {
    return fmt.Errorf("transforming manifests: %w", err)
}
// caller: inspect wrapped cause; verify image names vs build artifacts before retrying

Prevention

When it happens

Trigger: debuggingFilters is enabled, and after resolving registries, ApplyDebuggingTransforms(manifestList, buildArtifacts, manifest.Registries{...}) returns an error, wrapped at filter.go:133.

Common situations: Manifests lack expected metadata for debug injection, image names cannot be rewritten to the debug-helpers registry, or build artifacts mismatch the manifest images.

Related errors


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

Appendix: source

Thrown at cmd/skaffold/app/cmd/filter.go:133

		}

		if debuggingFilters {
			// TODO(bdealwis): refactor this code
			debugHelpersRegistry, err := config.GetDebugHelpersRegistry(opts.GlobalConfig)
			if err != nil {
				return fmt.Errorf("resolving debug helpers: %w", err)
			}
			insecureRegistries, err := getInsecureRegistries(opts, configs)
			if err != nil {
				return fmt.Errorf("retrieving insecure registries: %w", err)
			}

			manifestList, err = debugging.ApplyDebuggingTransforms(manifestList, buildArtifacts, manifest.Registries{
				DebugHelpersRegistry: debugHelpersRegistry,
				InsecureRegistries:   insecureRegistries,
			})
			if err != nil {
				return fmt.Errorf("transforming manifests: %w", err)
			}
		}
		out.Write([]byte(manifestList.String()))
		return nil
	})
}

func getTransformList(configs []util.VersionedConfig) (map[apim.GroupKind]latest.ResourceFilter, map[apim.GroupKind]latest.ResourceFilter) {
	// TODO: remove code duplication by adding a new Filter method to the runner.
	// and reuse renderer/util.ConsolidateTransformConfiguration

	allow := manifest.TransformAllowlist
	deny := manifest.TransformDenylist

	// add default values
	for _, rf := range manifest.TransformAllowlist {
		groupKind := apim.ParseGroupKind(rf.GroupKind)
		allow[groupKind] = rUtil.ConvertJSONPathIndex(rf)

View on GitHub (pinned to a1189de023)