{"record":{"id":"ac0f5c0152e7d340","repo":"GoogleContainerTools/skaffold","slug":"invalid-log-prefix-s-valid-values-are-auto","errorCode":null,"errorMessage":"invalid log prefix '%s'. Valid values are 'auto', 'container', 'podAndContainer' or 'none'","messagePattern":"invalid log prefix '(.+?)'\\. Valid values are 'auto', 'container', 'podAndContainer' or 'none'","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/skaffold/schema/validation/validation.go","lineNumber":698,"sourceCode":"\tif bc.GoogleCloudBuild != nil && bc.GoogleCloudBuild.WorkerPool != \"\" {\n\t\tif !gcbWorkerPoolPattern.MatchString(bc.GoogleCloudBuild.WorkerPool) {\n\t\t\tcfgErrs = append(cfgErrs, ErrorWithLocation{\n\t\t\t\tError:    fmt.Errorf(\"invalid value for worker pool. Must match pattern projects/{project}/locations/{location}/workerPools/{worker_pool}\"),\n\t\t\t\tLocation: cfg.YAMLInfos.Locate(&cfg.Build.GoogleCloudBuild.WorkerPool),\n\t\t\t})\n\t\t}\n\t}\n\treturn cfgErrs\n}\n\n// validateLogPrefix checks that logs are configured with a valid prefix.\nfunc validateLogPrefix(cfg *parser.SkaffoldConfigEntry, lc latest.LogsConfig) []ErrorWithLocation {\n\tvalidPrefixes := []string{\"\", \"auto\", \"container\", \"podAndContainer\", \"none\"}\n\n\tif !stringslice.Contains(validPrefixes, lc.Prefix) {\n\t\treturn []ErrorWithLocation{\n\t\t\t{\n\t\t\t\tError:    fmt.Errorf(\"invalid log prefix '%s'. Valid values are 'auto', 'container', 'podAndContainer' or 'none'\", lc.Prefix),\n\t\t\t\tLocation: cfg.YAMLInfos.Locate(&cfg.Deploy.Logs),\n\t\t\t},\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// validateVerifyTests\n// - makes sure that each test name is unique\n// - makes sure that each container name is unique\nfunc validateVerifyTests(runCtx *runcontext.RunContext) []error {\n\tvar errs []error\n\tseenTestName := map[string]bool{}\n\tseenContainerName := map[string]bool{}\n\ttcs := []*latest.VerifyTestCase{}\n\tfor _, pipeline := range runCtx.GetPipelines() {\n\t\ttcs = append(tcs, pipeline.Verify...)","sourceCodeStart":680,"sourceCodeEnd":716,"githubUrl":"https://github.com/GoogleContainerTools/skaffold/blob/a1189de023efc32d4b8e11f395acc678aa555011/pkg/skaffold/schema/validation/validation.go#L680-L716","documentation":"The deploy.logs.prefix field controls how pod/container names are prefixed in Skaffold's log output. Only '', 'auto', 'container', 'podAndContainer', and 'none' are accepted; any other string fails validation.","triggerScenarios":"deploy.logs.prefix set to an unsupported value (e.g. 'pod', 'full', 'true') processed via ProcessToErrorWithLocation -> validateLogPrefix.","commonSituations":"Guessing the prefix value instead of using documented enum values, or migrating from another tool's log config keys.","solutions":["Set prefix to one of 'auto', 'container', 'podAndContainer', or 'none'","Remove the deploy.logs.prefix field to accept the default ('auto')"],"exampleFix":"# before\ndeploy:\n  logs:\n    prefix: pod\n# after\ndeploy:\n  logs:\n    prefix: podAndContainer","handlingStrategy":"validation","validationCode":"const valid = ['', 'auto', 'container', 'podAndContainer', 'none'];\nconst p = config.deploy?.logs?.prefix;\nif (p !== undefined && !valid.includes(p)) throw new Error(`invalid log prefix '${p}'`);","typeGuard":"function hasValidLogPrefix(cfg) {\n  const p = cfg?.deploy?.logs?.prefix;\n  return p === undefined || ['', 'auto', 'container', 'podAndContainer', 'none'].includes(p);\n}","tryCatchPattern":"try {\n  await skaffold.dev(config);\n} catch (e) {\n  if (/invalid log prefix/.test(e.message)) {\n    console.error('Use one of: auto, container, podAndContainer, none');\n  } else throw e;\n}","preventionTips":["Treat logs.prefix as an enum; never free-form text","Omit the field when unsure (defaults to auto)","Add enum checks to your skaffold.yaml linting"],"tags":["skaffold","config-validation","logs","enum"],"backgroundTag":"skaffold-config-validation","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"}