{"record":{"id":"b13a82a89ceda4a9","repo":"GoogleContainerTools/skaffold","slug":"can-t-merge-disablevalidation-property-from-kustom","errorCode":null,"errorMessage":"can't merge disableValidation property from kustomize into kubectl deployer, property is already set with different value","messagePattern":"can't merge disableValidation property from kustomize into kubectl deployer, property is already set with different value","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/skaffold/schema/v2beta29/upgrade.go","lineNumber":331,"sourceCode":"\t\t}\n\t}\n}\n\nfunc mergeKustomizeIntoKubectlDeployer(newPL *next.Pipeline, oldPL *Pipeline) error {\n\tkustomizeD := &next.KubectlDeploy{}\n\tpkgutil.CloneThroughJSON(oldPL.Deploy.KustomizeDeploy, kustomizeD)\n\n\tif newPL.Deploy.KubectlDeploy == nil {\n\t\tnewPL.Deploy.KubectlDeploy = kustomizeD\n\t} else {\n\t\tkubectlD := newPL.Deploy.KubectlDeploy\n\n\t\tif kubectlD.DefaultNamespace != nil && kustomizeD.DefaultNamespace != nil && *(kubectlD.DefaultNamespace) != *(kustomizeD.DefaultNamespace) {\n\t\t\treturn errors.New(\"can't merge defaultNamespace property from kustomize into kubectl deployer, property is already set with different value\")\n\t\t}\n\n\t\tif kubectlD.Flags.DisableValidation != kustomizeD.Flags.DisableValidation {\n\t\t\treturn errors.New(\"can't merge disableValidation property from kustomize into kubectl deployer, property is already set with different value\")\n\t\t}\n\n\t\tif kustomizeD.DefaultNamespace != nil {\n\t\t\tkubectlD.DefaultNamespace = kustomizeD.DefaultNamespace\n\t\t}\n\n\t\tkubectlD.Flags = next.KubectlFlags{\n\t\t\tDisableValidation: kustomizeD.Flags.DisableValidation,\n\t\t\tGlobal:            append(kubectlD.Flags.Global, kustomizeD.Flags.Global...),\n\t\t\tApply:             append(kubectlD.Flags.Apply, kustomizeD.Flags.Apply...),\n\t\t\tDelete:            append(kubectlD.Flags.Delete, kustomizeD.Flags.Delete...),\n\t\t}\n\n\t\tkubectlD.LifecycleHooks = next.DeployHooks{\n\t\t\tPreHooks:  append(kubectlD.LifecycleHooks.PreHooks, kustomizeD.LifecycleHooks.PreHooks...),\n\t\t\tPostHooks: append(kubectlD.LifecycleHooks.PostHooks, kustomizeD.LifecycleHooks.PostHooks...),\n\t\t}\n\t}","sourceCodeStart":313,"sourceCodeEnd":349,"githubUrl":"https://github.com/GoogleContainerTools/skaffold/blob/a1189de023efc32d4b8e11f395acc678aa555011/pkg/skaffold/schema/v2beta29/upgrade.go#L313-L349","documentation":"Same merge as the defaultNamespace conflict: when merging a kustomize deployer into a kubectl deployer during upgrade, disagreeing `disableValidation` flags make the result ambiguous, so the upgrade returns this error.","triggerScenarios":"Upgrading a config where deploy.kubectl.flags.disableValidation and deploy.kustomize.flags.disableValidation are both set to different boolean values.","commonSituations":"Users who disabled validation for one deployer but not the other, then run `skaffold fix` on a multi-deployer config.","solutions":["Set the same disableValidation value on both deployers before upgrading.","Remove the flags.disableValidation from one deployer so only one value exists.","Skip the pre-merge by removing the kustomize deployer (its settings merge cleanly otherwise)."],"exampleFix":"# before\nkustomize:\n  flags:\n    disableValidation: true\nkubectl:\n  flags:\n    disableValidation: false\n# after\nkubectl:\n  flags:\n    disableValidation: true","handlingStrategy":"validation","validationCode":"func flagConflict(k, ku *v2beta29.KubectlDeploy) bool {\n    return k != nil && ku != nil && k.Flags.DisableValidation != ku.Flags.DisableValidation\n}","typeGuard":"if kd.Flags.DisableValidation != kzd.Flags.DisableValidation { /* conflict */ }","tryCatchPattern":"if err != nil && strings.Contains(err.Error(), \"can't merge disableValidation\") {\n    // set equal flags or drop one, then retry upgrade\n}","preventionTips":["Use the same disableValidation value across deployers","Avoid mixing kubectl and kustomize deployers with divergent flags","Normalize flags before running upgrades"],"tags":["kustomize","kubectl","schema-upgrade","flags"],"backgroundTag":"config-merge-conflict","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"}