{"record":{"id":"bd391fef562ebfaa","repo":"kubernetes/kops","slug":"error-registering-corev1-v","errorCode":null,"errorMessage":"error registering corev1: %v","messagePattern":"error registering corev1: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"critical","filePath":"cmd/kops-controller/main.go","lineNumber":292,"sourceCode":"\t\t\tos.Exit(1)\n\t\t}\n\t\tif err := clusterapi.RegisterControllers(mgr, clientset); err != nil {\n\t\t\tsetupLog.Error(err, \"registering Cluster API controllers\")\n\t\t\tos.Exit(1)\n\t\t}\n\t}\n\n\tsetupLog.Info(\"starting manager\")\n\tif err := mgr.Start(ctrl.SetupSignalHandler()); err != nil {\n\t\tsetupLog.Error(err, \"problem running manager\")\n\t\tos.Exit(1)\n\t}\n}\n\nfunc buildScheme(opt *config.Options) (*runtime.Scheme, error) {\n\tscheme := runtime.NewScheme()\n\tif err := corev1.AddToScheme(scheme); err != nil {\n\t\treturn nil, fmt.Errorf(\"error registering corev1: %v\", err)\n\t}\n\tif err := v1alpha2.AddToScheme(scheme); err != nil {\n\t\treturn nil, fmt.Errorf(\"error registering kops/v1alpha2 API: %v\", err)\n\t}\n\t// Needed so that the leader-election system can post events\n\tif err := coordinationv1.AddToScheme(scheme); err != nil {\n\t\treturn nil, fmt.Errorf(\"error registering coordinationv1: %v\", err)\n\t}\n\tif opt.CAPI.IsEnabled() {\n\t\tif err := bootstrapapi.AddToScheme(scheme); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error registering kops bootstrap cluster API: %v\", err)\n\t\t}\n\t\tif err := controlplaneapi.AddToScheme(scheme); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error registering kops control-plane cluster API: %v\", err)\n\t\t}\n\t}\n\n\treturn scheme, nil","sourceCodeStart":274,"sourceCodeEnd":310,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/cmd/kops-controller/main.go#L274-L310","documentation":"buildScheme registers the Kubernetes corev1 API types into a fresh runtime.Scheme for kops-controller's manager; this wraps corev1.AddToScheme failing, which is effectively impossible in a correct build and signals an internal scheme-registration programming error.","triggerScenarios":"corev1.AddToScheme(scheme) returns an error — practically only on duplicate type registration panics/errors or a corrupted/incompatible apimachinery/corev1 library version.","commonSituations":"Dependency version skew between k8s.io/api, k8s.io/apimachinery and controller-runtime in the module graph (multiple major versions vendored).","solutions":["Run `go mod tidy` / `make gomod` to align k8s.io/* module versions","Check go.mod for duplicate k8s.io/api versions","Rebuild after clearing the module cache if a corrupt download is suspected"],"exampleFix":"// before (go.mod)\nk8s.io/api v0.26.0\nk8s.io/apimachinery v0.28.0\n// after\nk8s.io/api v0.28.0\nk8s.io/apimachinery v0.28.0","handlingStrategy":"validation","validationCode":"scheme := runtime.NewScheme()\nif err := corev1.AddToScheme(scheme); err != nil {\n\treturn nil, err\n}\n_ = scheme\n","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pin all k8s.io/* modules to the same minor version","Run `make gomod` after dependency changes","Add a startup smoke test building the scheme"],"tags":["kubernetes","scheme","startup","dependencies"],"backgroundTag":"scheme-registration-failed","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"}