{"record":{"id":"1681f0d26c836250","repo":"GoogleContainerTools/skaffold","slug":"unmarshalling-into-new-helm-deploy","errorCode":null,"errorMessage":"unmarshalling into new helm deploy","messagePattern":"unmarshalling into new helm deploy","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/skaffold/schema/v2beta29/upgrade.go","lineNumber":142,"sourceCode":"\t\tif err := mergeKustomizeIntoKubectlDeployer(newPL, oldPL); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Copy Kpt deploy config to render config\n\tif oldPL.Deploy.KptDeploy != nil {\n\t\treturn errors.New(\"converting deploy.kpt isn't currently supported\")\n\t}\n\n\t// Copy helm deploy config\n\tif oldPL.Deploy.HelmDeploy != nil {\n\t\toldHelm, err := json.Marshal(*oldPL.Deploy.HelmDeploy)\n\t\tif err != nil {\n\t\t\treturn errors.Wrap(err, \"marshalling old helm deploy\")\n\t\t}\n\t\tnewHelm := next.LegacyHelmDeploy{}\n\t\tif err = json.Unmarshal(oldHelm, &newHelm); err != nil {\n\t\t\treturn errors.Wrap(err, \"unmarshalling into new helm deploy\")\n\t\t}\n\n\t\t// Copy Releases and Flags into the render config. Hooks are not copied due to v1\n\t\t// backwards compatibility: v1 skaffold render command doesn't trigger the hooks.\n\t\tnewPL.Render.Helm = &next.Helm{}\n\t\tnewPL.Render.Helm.Releases = newHelm.Releases\n\t\tnewPL.Render.Helm.Flags = newHelm.Flags\n\n\t\t// Copy over removed artifactOverrides & imageStrategy field as identical setValues fields\n\t\tfor i := 0; i < len(newPL.Render.Helm.Releases); i++ {\n\t\t\t// need to append, not override\n\t\t\tsvs := map[string]string(oldPL.Deploy.HelmDeploy.Releases[i].SetValues)\n\t\t\tsvts := map[string]string(oldPL.Deploy.HelmDeploy.Releases[i].SetValueTemplates)\n\t\t\taos := map[string]string(oldPL.Deploy.HelmDeploy.Releases[i].ArtifactOverrides)\n\t\t\tif aos != nil && svs == nil {\n\t\t\t\tsvs = map[string]string{}\n\t\t\t}\n\t\t\tif oldPL.Deploy.HelmDeploy.Releases[i].ImageStrategy.HelmConventionConfig != nil {","sourceCodeStart":124,"sourceCodeEnd":160,"githubUrl":"https://github.com/GoogleContainerTools/skaffold/blob/a1189de023efc32d4b8e11f395acc678aa555011/pkg/skaffold/schema/v2beta29/upgrade.go#L124-L160","documentation":"Fires during v2beta29 config upgrade when the JSON-serialized legacy Helm deploy config cannot be unmarshalled into the new LegacyHelmDeploy structure — the old and new schemas don't align for this config, an internal migration failure.","triggerScenarios":"Thrown at pkg/skaffold/schema/v2beta29/upgrade.go:142 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Run `skaffold fix` with a current skaffold release","Simplify unusual fields in the legacy deploy.helm section and retry","Report to skaffold maintainers with the failing config if persistent"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"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"}