{"record":{"id":"7b331ddf5dabc5a2","repo":"GoogleContainerTools/skaffold","slug":"creating-tagger-w","errorCode":null,"errorMessage":"creating tagger: %w","messagePattern":"creating tagger: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/skaffold/runner/new.go","lineNumber":56,"sourceCode":"\t\"github.com/GoogleContainerTools/skaffold/v2/pkg/skaffold/tag\"\n\t\"github.com/GoogleContainerTools/skaffold/v2/pkg/skaffold/test\"\n\t\"github.com/GoogleContainerTools/skaffold/v2/pkg/skaffold/trigger\"\n\t\"github.com/GoogleContainerTools/skaffold/v2/pkg/skaffold/verify\"\n)\n\n// NewForConfig returns a new SkaffoldRunner for a SkaffoldConfig\nfunc NewForConfig(ctx context.Context, runCtx *runcontext.RunContext) (*SkaffoldRunner, error) {\n\tevent.InitializeState(runCtx)\n\tevent.LogMetaEvent()\n\teventV2.InitializeState(runCtx)\n\teventV2.LogMetaEvent()\n\t_, endTrace := instrumentation.StartTrace(context.Background(), \"NewForConfig\")\n\tdefer endTrace()\n\n\ttagger, err := tag.NewTaggerMux(runCtx)\n\tif err != nil {\n\t\tendTrace(instrumentation.TraceEndError(err))\n\t\treturn nil, fmt.Errorf(\"creating tagger: %w\", err)\n\t}\n\n\tstore := build.NewArtifactStore()\n\tg := graph.ToArtifactGraph(runCtx.Artifacts())\n\tsourceDependencies := graph.NewSourceDependenciesCache(runCtx, store, g)\n\n\tisLocalImage := func(imageName string) (bool, error) {\n\t\treturn isImageLocal(runCtx, imageName)\n\t}\n\n\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","sourceCodeStart":38,"sourceCodeEnd":74,"githubUrl":"https://github.com/GoogleContainerTools/skaffold/blob/a1189de023efc32d4b8e11f395acc678aa555011/pkg/skaffold/runner/new.go#L38-L74","documentation":"`NewForConfig` builds the runner and first constructs a tagger mux from the skaffold.yaml `build.tagPolicy` for every pipeline. This error wraps any failure while instantiating that tagger — e.g. an invalid envTemplate, a git tagger that can't resolve the repo, or malformed customTemplate components.","triggerScenarios":"Any skaffold command that builds a runner when `tag.NewTaggerMux` fails: invalid `envTemplate` syntax (bad Go template), custom template referencing unknown env vars/components, `gitCommit` tagger used outside a git repository, or DateTimeTagger with an invalid timezone/format.","commonSituations":"Tag policy like `envTemplate: \"{{.FOO}}\"` with a malformed template expression; running in a non-git directory with `gitCommit` tag policy; invalid IANA timezone in dateTime tagger; typo in customTemplate component args.","solutions":["Inspect the inner error and fix the `build.tagPolicy` entry in skaffold.yaml.","For envTemplate, validate the Go template string and that all referenced env vars are set.","For gitCommit tagger, run inside a git repo (`git status` should succeed) or switch to shaTagger.","For dateTime tagger, use a valid IANA timezone (e.g. `UTC`, `America/New_York`) and supported format.","Use `skaffold diagnose` to surface config-level problems early."],"exampleFix":"// skaffold.yaml before\nbuild:\n  tagPolicy:\n    envTemplate:\n      template: \"{{.BAD{{\"\"\n// after\nbuild:\n  tagPolicy:\n    envTemplate:\n      template: \"{{.RELEASE}}\"","handlingStrategy":"validation","validationCode":"for _, p := range pipelines {\n  if p.Build.TagPolicy.EnvTemplateTagger != nil {\n    if _, err := template.New(\"t\").Parse(p.Build.TagPolicy.EnvTemplateTagger.Template); err != nil {\n      return fmt.Errorf(\"invalid envTemplate %q: %w\", p.Build.TagPolicy.EnvTemplateTagger.Template, err)\n    }\n  }\n}","typeGuard":null,"tryCatchPattern":"runner, err := runner.NewForConfig(runCtx)\nif err != nil {\n  var tagErr = \"creating tagger\"\n  if strings.Contains(err.Error(), tagErr) {\n    return fmt.Errorf(\"skaffold.yaml build.tagPolicy is invalid: %w\", err)\n  }\n  return err\n}","preventionTips":["Run `skaffold diagnose` in CI before any build to validate tag policies.","Prefer shaTagger or dateTimeTagger when git metadata is unavailable.","Test envTemplate strings by rendering them in a unit test with the same env vars.","Validate IANA timezones for dateTime tagger with time.LoadLocation."],"tags":["config","tagging","skaffold-yaml"],"backgroundTag":"invalid-tag-policy-config","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"}