cloudflare/cloudflared · warning

ErrNoVolumeFound

ErrNoVolumeFound

Error message

no disk volume information found

What it means

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.

Source

Thrown at diagnostic/error.go:19

package diagnostic

import (
	"errors"
)

var (
	// Error used when there is no log directory available.
	ErrManagedLogNotFound = errors.New("managed log directory not found")
	// Error used when it is not possible to collect logs using the log configuration.
	ErrLogConfigurationIsInvalid = errors.New("provided log configuration is invalid")
	// Error used when parsing the fields of the output of collector.
	ErrInsufficientLines = errors.New("insufficient lines")
	// Error used when parsing the lines of the output of collector.
	ErrInsuficientFields = errors.New("insufficient fields")
	// Error used when given key is not found while parsing KV.
	ErrKeyNotFound = errors.New("key not found")
	// Error used when there is no disk volume information available.
	ErrNoVolumeFound = errors.New("no disk volume information found")
	// Error user when the base url of the diagnostic client is not provided.
	ErrNoBaseURL = errors.New("no base url")
	// Error used when no metrics server is found listening to the known addresses list (check [metrics.GetMetricsKnownAddresses]).
	ErrMetricsServerNotFound = errors.New("metrics server not found")
	// Error used when multiple metrics server are found listening to the known addresses list (check [metrics.GetMetricsKnownAddresses]).
	ErrMultipleMetricsServerFound = errors.New("multiple metrics server found")
	// Error used when a temporary file creation fails within the diagnostic procedure
	ErrCreatingTemporaryFile = errors.New("temporary file creation failed")
)

View on GitHub (pinned to 2253eeeb25)

Solutions

  1. Verify the underlying disk volume command (diskpart/wmic/df) works on the host and returns output.
  2. Run in an environment with at least one mounted disk/volume attached.
  3. Check locale/encoding so the collector's line parsing recognizes the output format.
  4. Treat the error as non-fatal and skip disk info in the diagnostic report if not essential.

Example fix

// before
info, err := diagnostic.ParseDiskVolumeInformationOutput(out)
if err != nil {
	return err
}
// after
info, err := diagnostic.ParseDiskVolumeInformationOutput(out)
if errors.Is(err, diagnostic.ErrNoVolumeFound) {
	log.Warn().Msg("no disk volume info available; skipping")
	return nil
} else if err != nil {
	return err
}
Defensive patterns

Strategy: try-catch

Try / catch

info, err := diagnostic.ParseDiskVolumeInformationOutput(out)
switch {
case errors.Is(err, diagnostic.ErrNoVolumeFound):
	log.Warn().Msg("no disk volume information available")
	// continue without disk data
case err != nil:
	return err
}

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Understand the failure class

Background: EmptyResultError / "no results found": when an API or scraper succeeds but returns zero rows — this error's family across 9 libraries.

Related errors


AI-assisted analysis of cloudflare/cloudflared@2253eeeb25 (2026-09-06). Data as JSON: /api/errors/5431f8d9c7e116f9. Report an issue: GitHub.