{"record":{"id":"84131482213588f3","repo":"kubernetes/kops","slug":"error-reading-operator-manifest-q-v","errorCode":null,"errorMessage":"error reading operator manifest %q: %v","messagePattern":"error reading operator manifest %q: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/wellknownoperators/operators.go","lineNumber":99,"sourceCode":"\n\toperatorVersion, _, err := unstructured.NestedString(u.Object, \"spec\", \"version\")\n\tif err != nil || operatorVersion == \"\" {\n\t\treturn nil, fmt.Errorf(\"could not get spec.version from ClusterPackage\")\n\t}\n\n\tid := operatorVersion\n\n\tlocation := path.Join(\"packages\", operatorKey, operatorVersion, \"manifest.yaml\")\n\tchannelURL, err := kops.ResolveChannel(b.Cluster.Spec.Channel)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error resolving channel %q: %v\", b.Cluster.Spec.Channel, err)\n\t}\n\n\tlocationURL := channelURL.ResolveReference(&url.URL{Path: location}).String()\n\n\tmanifestBytes, err := b.VFSContext.ReadFile(locationURL)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error reading operator manifest %q: %v\", locationURL, err)\n\t}\n\n\taddon := &Package{\n\t\tManifest: manifestBytes,\n\t\tSpec: channelsapi.AddonSpec{\n\t\t\tName:     new(operatorKey),\n\t\t\tId:       id,\n\t\t\tSelector: map[string]string{\"k8s-addon\": operatorKey},\n\t\t\tManifest: new(location),\n\t\t},\n\t}\n\treturn addon, nil\n}\n\nfunc CreateAddons(channel *kops.Channel, kubernetesVersion *semver.Version, cluster *kops.Cluster) (kubemanifest.ObjectList, error) {\n\tvar addons kubemanifest.ObjectList\n\n\tif !featureflag.UseAddonOperators.Enabled() {","sourceCodeStart":81,"sourceCodeEnd":117,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/pkg/wellknownoperators/operators.go#L81-L117","documentation":"The VFS read of the operator manifest (packages/<name>/<version>/manifest.yaml resolved against the channel URL) failed — typically a 404 because that package version does not exist in the channel, or a network/permission error.","triggerScenarios":"Thrown at pkg/wellknownoperators/operators.go:99 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the package name and spec.version actually exist in the configured channel","Update the channel or the ClusterPackage version to one that is published","Check network access and credentials for the channel/package location"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"4c8573c808a73d578c5eadc86d410646ea0b0d73","analyzedAt":"2026-09-05T04:13:19.212Z","contentChangedAt":"2026-09-05T04:13:19.212Z","schemaVersion":2},"datasetVersion":"2026-09-12T07:17:12.445Z"}