{"record":{"id":"cbe06052c8a6f37f","repo":"cilium/cilium","slug":"not-implemented","errorCode":null,"errorMessage":"not implemented","messagePattern":"not implemented","errorType":"error_code","errorClass":"ErrNotImplemented","httpStatus":null,"severity":"error","filePath":"pkg/envoy/grpc.go","lineNumber":29,"sourceCode":"\t\"os\"\n\n\tcilium \"github.com/cilium/proxy/go/cilium/api\"\n\tenvoy_service_cluster \"github.com/envoyproxy/go-control-plane/envoy/service/cluster/v3\"\n\tenvoy_service_discovery \"github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3\"\n\tenvoy_service_endpoint \"github.com/envoyproxy/go-control-plane/envoy/service/endpoint/v3\"\n\tenvoy_service_listener \"github.com/envoyproxy/go-control-plane/envoy/service/listener/v3\"\n\tenvoy_service_route \"github.com/envoyproxy/go-control-plane/envoy/service/route/v3\"\n\tenvoy_service_secret \"github.com/envoyproxy/go-control-plane/envoy/service/secret/v3\"\n\t\"google.golang.org/grpc\"\n\t\"google.golang.org/grpc/reflection\"\n\n\t\"github.com/cilium/cilium/pkg/envoy/xds\"\n\t\"github.com/cilium/cilium/pkg/logging/logfields\"\n)\n\n// ErrNotImplemented is the error returned by gRPC methods that are not\n// implemented by Cilium.\nvar ErrNotImplemented = errors.New(\"not implemented\")\n\n// runXDSGRPCServer runs a gRPC server to serve xDS APIs using the given\n// resource watcher and network listener. Returns on error or when [ctx]\n// is cancelled.\nfunc (s *xdsServer) runXDSGRPCServer(ctx context.Context, config map[string]*xds.ResourceTypeConfiguration) error {\n\tlistener, err := s.newSocketListener()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to create socket listener: %w\", err)\n\t}\n\n\tgrpcServer := grpc.NewServer()\n\n\t// xdsServer optionally pauses serving any resources until endpoints have been restored\n\txdsServer := xds.NewServer(s.logger, config, s.restorerPromise, s.config.metrics)\n\tdsServer := &xdsGRPCServer{Server: xdsServer}\n\n\t// TODO: https://github.com/cilium/cilium/issues/5051\n\t// Implement IncrementalAggregatedResources to support Incremental xDS.","sourceCodeStart":11,"sourceCodeEnd":47,"githubUrl":"https://github.com/cilium/cilium/blob/ac7b90affa4baf0642e6685319d56907b3a73a6d/pkg/envoy/grpc.go#L11-L47","documentation":"ErrNotImplemented is returned by gRPC/BPF-cgroup methods in the Envoy integration that Cilium does not implement (e.g. mountCgroup, GetCgroupID, NewHandle, AddrList, ChainList) depending on build flags or platform. It means the requested operation has no implementation in this binary.","triggerScenarios":"Calling any of mountCgroup, cgrpCheckOrMountLocation, GetCgroupID, NewHandle, AddrList, or ChainList on a build/platform where the feature is stubbed out (e.g. non-Linux, or Envoy gRPC server paths without cgroup support).","commonSituations":"Running Cilium on unsupported platforms; calling xDS/gRPC APIs not available in the current mode; binaries built without the relevant CGO/ebpf support.","solutions":["Check the platform: these operations require Linux with cgroup v1/v2 available.","Rebuild/obtain a Cilium image with the required build tags and dependencies (proper envoy/ebpf support).","Guard feature enablement: don't enable Envoy features (e.g. L7 policy) on platforms returning this error.","Use errors.Is(err, envoy.ErrNotImplemented) to degrade gracefully instead of crashing."],"exampleFix":"// before\nhandle, err := envoy.NewHandle()\nif err != nil {\n    return err\n}\n// after\nhandle, err := envoy.NewHandle()\nif errors.Is(err, envoy.ErrNotImplemented) {\n    log.Warn(\"cgroup socket-LB not supported on this build; skipping\")\n    return nil\n} else if err != nil {\n    return err\n}","handlingStrategy":"type-guard","validationCode":"// runtime feature check before enabling Envoy-dependent features:\n// if runtime.GOOS != \"linux\" || !cgroupsAvailable() { disableL7Policy() }","typeGuard":"func isNotImplemented(err error) bool {\n    return errors.Is(err, envoy.ErrNotImplemented)\n}","tryCatchPattern":"err := doGRPCOp()\nif errors.Is(err, envoy.ErrNotImplemented) {\n    return ErrFeatureUnavailable // degrade gracefully\n}","preventionTips":["Only enable Envoy/L7 features on Linux builds with cgroup support","Check platform and build tags before calling low-level cgroup/BPF helpers","Map ErrNotImplemented to a user-facing 'feature unavailable' state instead of an error"],"tags":["cilium","envoy","grpc","not-implemented"],"backgroundTag":"operation-not-implemented","analyzedSha":"ac7b90affa4baf0642e6685319d56907b3a73a6d","analyzedAt":"2026-08-31T18:27:15.868Z","schemaVersion":2},"datasetVersion":"2026-08-31T19:17:28.585Z"}