{"record":{"id":"54cdc357597d5063","repo":"cilium/cilium","slug":"failed-to-write-cilium-cidr-groups-to-file-w","errorCode":null,"errorMessage":"failed to write Cilium CIDR Groups to file: %w","messagePattern":"failed to write Cilium CIDR Groups to file: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cilium-cli/sysdump/sysdump.go","lineNumber":784,"sourceCode":"\t\t\t\tif err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"failed to collect Cilium Egress Gateway policies: %w\", err)\n\t\t\t\t}\n\t\t\t\tif err := c.WriteYAML(ciliumEgressGatewayPoliciesFileName, v); err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"failed to collect Cilium Egress Gateway policies: %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 CIDR Groups\",\n\t\t\tQuick:       true,\n\t\t\tTask: func(ctx context.Context) error {\n\t\t\t\tv, err := c.Client.ListCiliumCIDRGroups(ctx, metav1.ListOptions{})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"failed to collect Cilium CIDR Groups: %w\", err)\n\t\t\t\t}\n\t\t\t\tif err := c.WriteYAML(ciliumCIDRGroupsFileName, v); err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"failed to write Cilium CIDR Groups to file: %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 local redirect policies\",\n\t\t\tQuick:       true,\n\t\t\tTask: func(ctx context.Context) error {\n\t\t\t\tv, err := c.Client.ListCiliumLocalRedirectPolicies(ctx, corev1.NamespaceAll, metav1.ListOptions{})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"failed to collect Cilium local redirect policies: %w\", err)\n\t\t\t\t}\n\t\t\t\tif err := c.WriteYAML(ciliumLocalRedirectPoliciesFileName, v); err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"failed to collect Cilium local redirect policies: %w\", err)\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t},\n\t\t},","sourceCodeStart":766,"sourceCodeEnd":802,"githubUrl":"https://github.com/cilium/cilium/blob/ac7b90affa4baf0642e6685319d56907b3a73a6d/cilium-cli/sysdump/sysdump.go#L766-L802","documentation":"This error wraps a WriteYAML failure for the Cilium CIDR Groups collection task: the list call succeeded but writing ciliumCIDRGroupsFileName failed. Unlike error 832 it is not an API problem; it is a serialization or filesystem error surfaced during sysdump generation.","triggerScenarios":"c.WriteYAML(ciliumCIDRGroupsFileName, v) fails after ListCiliumCIDRGroups succeeded — YAML marshal error or inability to create the file in the sysdump working directory.","commonSituations":"Read-only or full filesystem, SELinux/AppArmor denying writes, temp directory cleaned concurrently, or marshaling issues with unusual resource content.","solutions":["Check disk space and directory permissions for the sysdump output path","Run cilium-cli with --output pointing to a writable directory","Confirm no security module (SELinux) is blocking writes (check audit logs)","If the wrapped error is a YAML marshal failure, update cilium-cli to the latest patch release"],"exampleFix":"// before\ncilium-cli sysdump   # fails writing into read-only CWD\n// after\ncd /tmp && cilium-cli sysdump --output /tmp/sysdump\nls -ld /tmp/sysdump  # confirm writable","handlingStrategy":"validation","validationCode":"func ensureWritable(dir string) error {\n\tprobe := filepath.Join(dir, \".probe\")\n\tif err := os.WriteFile(probe, []byte(\"x\"), 0o600); err != nil { return err }\n\treturn os.Remove(probe)\n}\n// invoke before Run() with the sysdump output directory","typeGuard":"func isFileWriteError(err error) bool { return errors.Is(err, os.ErrPermission) || errors.Is(err, syscall.ENOSPC) || errors.Is(err, fs.ErrClosed) }","tryCatchPattern":"if err := c.WriteYAML(ciliumCIDRGroupsFileName, v); err != nil {\n\treturn fmt.Errorf(\"failed to write Cilium CIDR Groups to file %s: %w\", ciliumCIDRGroupsFileName, err)\n}","preventionTips":["Check df free space before multi-task sysdump runs","Avoid read-only/containerized working directories for output","Log each task's error with the filename for pinpoint triage","Whitelist the CLI in endpoint protection on hardened hosts"],"tags":["kubernetes","cilium","sysdump","file-write"],"backgroundTag":"file-write-failed","analyzedSha":"ac7b90affa4baf0642e6685319d56907b3a73a6d","analyzedAt":"2026-08-31T18:27:15.868Z","schemaVersion":2},"datasetVersion":"2026-08-31T19:17:28.585Z"}