{"record":{"id":"8526f369c49b7265","repo":"GoogleContainerTools/skaffold","slug":"found-multiple-log-prefixes-in-skaffold-yaml-not","errorCode":null,"errorMessage":"found multiple log prefixes in skaffold.yaml (not supported in `skaffold apply`): %s, %s","messagePattern":"found multiple log prefixes in skaffold\\.yaml \\(not supported in `skaffold apply`\\): (.+?), (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/skaffold/runner/deployer.go","lineNumber":264,"sourceCode":"\t\t\tkubeContext = d.KubeContext\n\t\t}\n\t\tif d.StatusCheck != nil {\n\t\t\tif statusCheck == nil {\n\t\t\t\tstatusCheck = d.StatusCheck\n\t\t\t} else if statusCheck != d.StatusCheck {\n\t\t\t\t// if we get conflicting values for status check from different skaffold configs, we turn status check off\n\t\t\t\tstatusCheck = util.Ptr(false)\n\t\t\t}\n\t\t}\n\t\tif d.StatusCheckDeadlineSeconds != 0 && d.StatusCheckDeadlineSeconds != int(status.DefaultStatusCheckDeadline.Seconds()) {\n\t\t\tif statusCheckTimeout != -1 && statusCheckTimeout != d.StatusCheckDeadlineSeconds {\n\t\t\t\treturn nil, fmt.Errorf(\"found multiple status check timeouts in skaffold.yaml (not supported in `skaffold apply`): %d, %d\", statusCheckTimeout, d.StatusCheckDeadlineSeconds)\n\t\t\t}\n\t\t\tstatusCheckTimeout = d.StatusCheckDeadlineSeconds\n\t\t}\n\t\tif d.Logs.Prefix != \"\" {\n\t\t\tif logPrefix != \"\" && logPrefix != d.Logs.Prefix {\n\t\t\t\treturn nil, fmt.Errorf(\"found multiple log prefixes in skaffold.yaml (not supported in `skaffold apply`): %s, %s\", logPrefix, d.Logs.Prefix)\n\t\t\t}\n\t\t\tlogPrefix = d.Logs.Prefix\n\t\t}\n\t\tvar currentDefaultNamespace *string\n\t\tvar currentKubectlFlags latest.KubectlFlags\n\t\tif d.KubectlDeploy != nil {\n\t\t\tcurrentDefaultNamespace = d.KubectlDeploy.DefaultNamespace\n\t\t\tcurrentKubectlFlags = d.KubectlDeploy.Flags\n\t\t}\n\t\tif kFlags == nil {\n\t\t\tkFlags = &currentKubectlFlags\n\t\t}\n\t\tif err := validateKubectlFlags(kFlags, currentKubectlFlags); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif currentDefaultNamespace != nil {\n\t\t\tif defaultNamespace != nil && *defaultNamespace != *currentDefaultNamespace {\n\t\t\t\treturn nil, fmt.Errorf(\"found multiple namespaces in skaffold.yaml (not supported in `skaffold apply`): %s, %s\", *defaultNamespace, *currentDefaultNamespace)","sourceCodeStart":246,"sourceCodeEnd":282,"githubUrl":"https://github.com/GoogleContainerTools/skaffold/blob/a1189de023efc32d4b8e11f395acc678aa555011/pkg/skaffold/runner/deployer.go#L246-L282","documentation":"getDefaultDeployer merges log settings across multiple skaffold configs. When configs declare different `deploy.logs.prefix` values, there is no single prefix to use, so this error is returned for `skaffold apply`. It lists both conflicting prefixes.","triggerScenarios":"Running `skaffold apply` against multiple skaffold configs where `deploy.logs.prefix` is set to different strings in at least two configs.","commonSituations":"Composing per-service skaffold configs (dependencies/profiles) that each set their own log prefix.","solutions":["Set an identical `deploy.logs.prefix` in all composed configs","Remove `logs.prefix` from all configs except one","Centralize logging config in a shared base skaffold config"],"exampleFix":"// config-a (before)\ndeploy:\n  logs:\n    prefix: app-\n// config-b (before)\ndeploy:\n  logs:\n    prefix: svc-\n// after\n# set prefix: app- in both, or omit in config-b","handlingStrategy":"validation","validationCode":"const prefixes = configs.map(c => c.deploy?.logs?.prefix).filter(Boolean)\nif (new Set(prefixes).size > 1) {\n  throw new Error('conflicting logs.prefix values: ' + prefixes.join(', '))\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Define log prefix once in a shared base config","Omit logs.prefix in per-service configs that get composed together","Validate merged config output before running apply in CI"],"tags":["deploy","config","apply","logs"],"backgroundTag":"conflicting-skaffold-configs","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"}