{"record":{"id":"9d507c9445a45d29","repo":"GoogleContainerTools/skaffold","slug":"s-is-an-invalid-api-version","errorCode":null,"errorMessage":"%s is an invalid api version","messagePattern":"(.+?) is an invalid api version","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/skaffold/apiversion/apiversion.go","lineNumber":32,"sourceCode":"limitations under the License.\n*/\n\npackage apiversion\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n\n\t\"github.com/blang/semver\"\n)\n\nvar re = regexp.MustCompile(`^skaffold/v(\\d)(?:(alpha|beta)([1-9]?[0-9]))?$`)\n\n// Parse parses a string into a semver.Version.\nfunc Parse(v string) (semver.Version, error) {\n\tres := re.FindStringSubmatch(v)\n\tif res == nil {\n\t\treturn semver.Version{}, fmt.Errorf(\"%s is an invalid api version\", v)\n\t}\n\tif res[2] == \"\" || res[3] == \"\" {\n\t\treturn semver.Parse(fmt.Sprintf(\"%s.0.0\", res[1]))\n\t}\n\treturn semver.Parse(fmt.Sprintf(\"%s.0.0-%s.%s\", res[1], res[2], res[3]))\n}\n","sourceCodeStart":14,"sourceCodeEnd":39,"githubUrl":"https://github.com/GoogleContainerTools/skaffold/blob/a1189de023efc32d4b8e11f395acc678aa555011/pkg/skaffold/apiversion/apiversion.go#L14-L39","documentation":"Parse converts a Skaffold API version string like skaffold/v4beta7 into a semver via the regex ^skaffold/v(\\d)(?:(alpha|beta)([1-9]?[0-9]))?$. If the string doesn't match the expected shape, Parse returns this invalid-api-version error. Used when loading skaffold.yaml apiVersion fields and during config upgrades.","triggerScenarios":"skaffold.yaml declares apiVersion with an unsupported form: skaffold/v2 (multi-digit), skaffold/v4gamma1, skaffold/v10, missing the skaffold/ prefix, or the UpgradeTo pipeline parsing an arbitrary string.","commonSituations":"Editing skaffold.yaml by hand with a made-up version; copying an example from a different tool; skaffold/v2alpha4 style (two digits in major) which the single-digit regex rejects; accidentally deleting the version line leaving a corrupt value.","solutions":["Set apiVersion to a valid schema like skaffold/v4beta13 (single major digit, alpha/beta + 1-2 digit number)","Run `skaffold fix` to migrate an older/invalid version to the current schema","Check exact spelling: lowercase, format skaffold/vN(alpha|beta)N with no spaces"],"exampleFix":"// before\napiVersion: skaffold/v14beta1\nkind: Config\n// after\napiVersion: skaffold/v4beta13\nkind: Config","handlingStrategy":"validation","validationCode":"const re = /^skaffold\\/v(\\d)(?:(alpha|beta)([1-9]?[0-9]))?$/;\nconst v = doc.apiVersion;\nif (!re.test(v)) throw new Error(`${v} is an invalid api version`);","typeGuard":null,"tryCatchPattern":"try {\n  sv, err := apiversion.Parse(cfg.APIVersion)\n  if err != nil { return fmt.Errorf(\"skaffold.yaml apiVersion %q unsupported: %w\", cfg.APIVersion, err) }\n} ...","preventionTips":["Let `skaffold fix` migrate versions instead of hand-editing apiVersion","Copy apiVersion only from official Skaffold samples","Remember: single-digit major, alpha/beta number 1-99"],"tags":["configuration","api-version","validation","regex"],"backgroundTag":"invalid-api-version","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"}