{"record":{"id":"a0aa3f30aa0c53ea","repo":"cilium/cilium","slug":"failed-to-collect-cilium-endpoint-slices-w","errorCode":null,"errorMessage":"failed to collect Cilium endpoint slices: %w","messagePattern":"failed to collect Cilium endpoint slices: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cilium-cli/sysdump/sysdump.go","lineNumber":823,"sourceCode":"\t\t\tQuick:       true,\n\t\t\tTask: func(ctx context.Context) error {\n\t\t\t\tv, err := c.Client.ListCiliumEndpoints(ctx, corev1.NamespaceAll, metav1.ListOptions{})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"failed to collect Cilium endpoints: %w\", err)\n\t\t\t\t}\n\t\t\t\tif err := c.WriteYAML(ciliumEndpointsFileName, v); err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"failed to collect Cilium endpoints: %w\", err)\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tDescription: \"Collecting Cilium endpoint slices\",\n\t\t\tQuick:       true,\n\t\t\tTask: func(ctx context.Context) error {\n\t\t\t\tv, err := c.Client.ListCiliumEndpointSlices(ctx, metav1.ListOptions{})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"failed to collect Cilium endpoint slices: %w\", err)\n\t\t\t\t}\n\t\t\t\tif err := c.WriteYAML(ciliumEndpointSlicesFileName, v); err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"failed to collect Cilium endpoint slices: %w\", err)\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tDescription: \"Collecting Cilium identities\",\n\t\t\tQuick:       true,\n\t\t\tTask: func(ctx context.Context) error {\n\t\t\t\tv, err := c.Client.ListCiliumIdentities(ctx)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"failed to collect Cilium identities: %w\", err)\n\t\t\t\t}\n\t\t\t\tif err := c.WriteYAML(ciliumIdentitiesFileName, v); err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"failed to collect Cilium identities: %w\", err)\n\t\t\t\t}","sourceCodeStart":805,"sourceCodeEnd":841,"githubUrl":"https://github.com/cilium/cilium/blob/ac7b90affa4baf0642e6685319d56907b3a73a6d/cilium-cli/sysdump/sysdump.go#L805-L841","documentation":"Returned by the 'Collecting Cilium endpoint slices' task in Run() when ListCiliumEndpointSlices(ctx, metav1.ListOptions{}) fails; the underlying error is preserved via %w. It indicates CiliumEndpointSlice resources could not be retrieved (or, in the second branch, written) during sysdump collection.","triggerScenarios":"ListCiliumEndpointSlices errors: ciliumendpointslices.cilium.io CRD not installed (feature off / old Cilium), RBAC denial, API server unreachable, or the WriteYAML branch for ciliumEndpointSlicesFileName fails with the same message.","commonSituations":"Cilium deployments without EndpointSlice mode enabled (ciliumEndpointSlice.enabled=false), clusters upgraded from older Cilium lacking the CRD, RBAC policies that enumerate allowed cilium.io resources but omit this new one.","solutions":["Check kubectl get ciliumendpointslices -A to surface the true error","Upgrade Cilium and/or enable ciliumEndpointSlice (helm set ciliumEndpointSlice.enabled=true)","Add ciliumendpointslices.cilium.io to RBAC list/get rules","If the wrapped error is from WriteYAML, fix output permissions/disk space"],"exampleFix":"# before\ncilium install --set ciliumEndpointSlice.enabled=false\n# after\ncilium install --set ciliumEndpointSlice.enabled=true\nkubectl get crd ciliumendpointslices.cilium.io","handlingStrategy":"try-catch","validationCode":"import \"sigs.k8s.io/controller-runtime/pkg/client\"\nfunc canListEndpointSlices(ctx context.Context, c client.Client) error {\n\treturn c.List(ctx, &ciliumv2.CiliumEndpointSliceList{}) // early CRD/RBAC probe\n}","typeGuard":"func isListError(err error) bool { return apierrors.IsNotFound(err) || apierrors.IsForbidden(err) || apierrors.IsTimeout(err) }","tryCatchPattern":"if err := collect(); err != nil {\n\tif apierrors.IsNotFound(err) {\n\t\tlog.Warn(\"ciliumendpointslices CRD missing; feature disabled or old Cilium — skipping\")\n\t} else if apierrors.IsForbidden(err) {\n\t\tlog.Warn(\"RBAC: add ciliumendpointslices to rules\")\n\t} else {\n\t\treturn fmt.Errorf(\"failed to collect Cilium endpoint slices: %w\", err)\n\t}\n}","preventionTips":["Enable ciliumEndpointSlice.enabled=true on Cilium installs that expect it","Keep RBAC manifests in sync with every new cilium.io CRD after upgrades","Smoke-test each resource type with kubectl get before sysdump","Handle optional CRDs as skippable rather than fatal in wrappers"],"tags":["kubernetes","cilium","sysdump","crd-missing"],"backgroundTag":"kubernetes-api-list-failed","analyzedSha":"ac7b90affa4baf0642e6685319d56907b3a73a6d","analyzedAt":"2026-08-31T18:27:15.868Z","schemaVersion":2},"datasetVersion":"2026-08-31T19:17:28.585Z"}