{"record":{"id":"5431f8d9c7e116f9","repo":"cloudflare/cloudflared","slug":"errnovolumefound","errorCode":"ErrNoVolumeFound","errorMessage":"no disk volume information found","messagePattern":"no disk volume information found","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"diagnostic/error.go","lineNumber":19,"sourceCode":"package diagnostic\n\nimport (\n\t\"errors\"\n)\n\nvar (\n\t// Error used when there is no log directory available.\n\tErrManagedLogNotFound = errors.New(\"managed log directory not found\")\n\t// Error used when it is not possible to collect logs using the log configuration.\n\tErrLogConfigurationIsInvalid = errors.New(\"provided log configuration is invalid\")\n\t// Error used when parsing the fields of the output of collector.\n\tErrInsufficientLines = errors.New(\"insufficient lines\")\n\t// Error used when parsing the lines of the output of collector.\n\tErrInsuficientFields = errors.New(\"insufficient fields\")\n\t// Error used when given key is not found while parsing KV.\n\tErrKeyNotFound = errors.New(\"key not found\")\n\t// Error used when there is no disk volume information available.\n\tErrNoVolumeFound = errors.New(\"no disk volume information found\")\n\t// Error user when the base url of the diagnostic client is not provided.\n\tErrNoBaseURL = errors.New(\"no base url\")\n\t// Error used when no metrics server is found listening to the known addresses list (check [metrics.GetMetricsKnownAddresses]).\n\tErrMetricsServerNotFound = errors.New(\"metrics server not found\")\n\t// Error used when multiple metrics server are found listening to the known addresses list (check [metrics.GetMetricsKnownAddresses]).\n\tErrMultipleMetricsServerFound = errors.New(\"multiple metrics server found\")\n\t// Error used when a temporary file creation fails within the diagnostic procedure\n\tErrCreatingTemporaryFile = errors.New(\"temporary file creation failed\")\n)\n","sourceCodeStart":1,"sourceCodeEnd":29,"githubUrl":"https://github.com/cloudflare/cloudflared/blob/2253eeeb25a44a713a4b60b8ba1e1b3f377d1a0f/diagnostic/error.go#L1-L29","documentation":"ErrNoVolumeFound is returned by ParseDiskVolumeInformationOutput when parsing the output of a disk volume information collector yields zero disks. The diagnostic system collector ran the platform command for volume information but could not extract any disk entries from its output. It signals that no disk volume data is available rather than that the command itself failed.","triggerScenarios":"Calling diagnostic.RunDiagnostic / system collection on a host where the disk volume information command (e.g. Windows 'wmic logicaldisk' style collectors) produces empty or unparseable output, so the parsed disks slice is empty at diagnostic/system_collector_utils.go:111.","commonSituations":"Running the diagnostic on minimal/ containerized environments (no mounted volumes), stripped-down VMs without the disk utility installed, unusual locales causing output parsing to fail, or disk-less hosts.","solutions":["Verify the underlying disk volume command (diskpart/wmic/df) works on the host and returns output.","Run in an environment with at least one mounted disk/volume attached.","Check locale/encoding so the collector's line parsing recognizes the output format.","Treat the error as non-fatal and skip disk info in the diagnostic report if not essential."],"exampleFix":"// before\ninfo, err := diagnostic.ParseDiskVolumeInformationOutput(out)\nif err != nil {\n\treturn err\n}\n// after\ninfo, err := diagnostic.ParseDiskVolumeInformationOutput(out)\nif errors.Is(err, diagnostic.ErrNoVolumeFound) {\n\tlog.Warn().Msg(\"no disk volume info available; skipping\")\n\treturn nil\n} else if err != nil {\n\treturn err\n}","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"info, err := diagnostic.ParseDiskVolumeInformationOutput(out)\nswitch {\ncase errors.Is(err, diagnostic.ErrNoVolumeFound):\n\tlog.Warn().Msg(\"no disk volume information available\")\n\t// continue without disk data\ncase err != nil:\n\treturn err\n}","preventionTips":["Run diagnostics on hosts with attached volumes and the platform disk utilities installed.","Standardize locale/encoding so collector output parsing is deterministic.","Treat disk info as optional in reports to keep diagnostics useful on minimal hosts."],"tags":["diagnostic","disk","parsing"],"backgroundTag":"empty-result-set","analyzedSha":"2253eeeb25a44a713a4b60b8ba1e1b3f377d1a0f","analyzedAt":"2026-09-06T04:14:33.757Z","contentChangedAt":"2026-09-06T04:14:33.757Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}