k3s-io/k3s · error
no entries found in
Error message
no entries found in %s
What it means
VerifySums parses <dir>/.sha256sums expecting whitespace-separated '<sum> <file>' lines. If the file opens and parses but yields zero entries (empty file or only blank lines), this error is returned, which then surfaces as part of 'failed to verify directory'.
Solutions
- Delete the incomplete temp dir (e.g. /var/lib/rancher/k3s/data/<version>-tmp) and restart k3s so the bundle re-extracts.
- Free disk space first if the volume was full during extraction (df -h).
- If it recurs, reinstall the k3s binary from an official artifact - the embedded bundle itself is damaged.
Defensive patterns
Strategy: validation
Validate before calling
// Check the manifest is non-empty before trusting a staged data dir:
b, err := os.ReadFile(filepath.Join(dir, ".sha256sums"))
if err != nil { log.Fatal(err) }
if len(strings.Fields(string(b))) < 2 { // need at least one sum+path pair
log.Fatal(".sha256sums has no entries - re-extract the bundle")
} Prevention
- After untarring release artifacts, assert every expected manifest file is non-empty.
- Automate data-dir provisioning from the official binary only - never copy bin dirs by hand.
- Monitor disk-full conditions during node provisioning.
When it happens
Trigger: The .sha256sums file inside the extracted data bundle (…/<version>-tmp/bin/.sha256sums) exists but is empty or whitespace-only (pkg/dataverify/dataverify.go:34-40).
Common situations: Extraction truncated by a full disk so the manifest was written empty; antivirus/security tooling stripped file contents; a broken build/packaging pipeline producing an empty manifest.
Related errors
- failed hash verifications
- failed to verify directory
- error extracting zstd-compressed body
- failed link verifications
- fields for file ( ) smaller than required index (key: …
AI-assisted analysis of k3s-io/k3s@6ba341e396 (2026-08-15).
Data as JSON: /api/errors/519eff9a74c35677.
Report an issue: GitHub.
Appendix: source
Thrown at pkg/dataverify/dataverify.go:40
}
if err := VerifyLinks(dir, ".links"); err != nil {
logrus.Errorf("Unable to verify links: %s", err)
failed = true
}
if failed {
return fmt.Errorf("failed to verify directory %s", dir)
}
return nil
}
// VerifySums will take a file which contains a list of hash sums for files and verify they match
func VerifySums(root, sumListFile string) error {
sums, err := fileMapFields(filepath.Join(root, sumListFile), 1, 0)
if err != nil {
return err
}
if len(sums) == 0 {
return fmt.Errorf("no entries found in %s", sumListFile)
}
numFailed := 0
for sumFile, sumExpected := range sums {
file := filepath.Join(root, sumFile)
sumActual, _ := sha256Sum(file)
if sumExpected != sumActual {
logrus.Errorf("Hash for file %s expected to be %s (fail)", sumFile, sumExpected)
numFailed++
} else {
logrus.Debugf("Verified hash %s is correct", sumFile)
}
}
if numFailed != 0 {
return fmt.Errorf("failed %d hash verifications", numFailed)
}
return nil
}
View on GitHub (pinned to 6ba341e396)