moonD4rk/HackBrowserData · error

no decryption-relevant files found to archive

Error message

no decryption-relevant files found to archive

What it means

WriteArchive collects a browser profile's decryption-relevant files (Local State, Cookies DB, etc.) into a staging directory before zipping. If it matched zero eligible files, there is nothing to archive, so it errors instead of producing an empty zip. This indicates the profile path was wrong or the expected files were filtered out.

Source

Thrown at browser/archive.go:62

			if seen[entry] {
				continue
			}
			seen[entry] = true

			dst := filepath.Join(staging, key, filepath.FromSlash(src.LayoutRel))
			if err := os.MkdirAll(filepath.Dir(dst), 0o755); err != nil {
				log.Warnf("archive: %s: %v", entry, err)
				continue
			}
			if err := session.Acquire(src.AbsPath, dst, src.IsDir); err != nil {
				log.Warnf("archive: acquire %s: %v", entry, err)
				continue
			}
			count++
		}
	}
	if count == 0 {
		return 0, fmt.Errorf("no decryption-relevant files found to archive")
	}
	if err := fileutil.ZipDir(outPath, staging); err != nil {
		return 0, fmt.Errorf("write archive %s: %w", outPath, err)
	}
	return count, nil
}

View on GitHub (pinned to 0503d04d7a)

Solutions

  1. Verify the profile directory path points at a real profile containing Local State / Cookies and other expected files.
  2. List the directory contents and compare against the file filter WriteArchive uses; adjust the path or filter.
  3. Re-copy the browser profile (Chrome may delete files while running — copy from a closed browser).
  4. If intentional, guard the call by checking for required files before invoking WriteArchive.

Example fix

// before: points at browser root, not a profile
WriteArchive("/Users/me/Library/Application Support/Google/Chrome", out)
// after: point at the specific profile
WriteArchive("/Users/me/Library/Application Support/Google/Chrome/Default", out)
Defensive patterns

Strategy: validation

Validate before calling

entries, err := os.ReadDir(profileDir)
if err != nil || len(entries) == 0 {
    return fmt.Errorf("profile %q missing or empty", profileDir)
}

Try / catch

n, err := browser.WriteArchive(profileDir, outPath)
if err != nil && strings.Contains(err.Error(), "no decryption-relevant files") {
    return fmt.Errorf("profile %q has no relevant files: %w", profileDir, err)
}

Prevention

When it happens

Trigger: Calling WriteArchive on a profile directory that contains none of the recognized decryption-relevant files (all candidates skipped/filtered), so count == 0.

Common situations: Pointing at an empty or freshly created profile directory, wrong profile path (typo or wrong profile number), a browser whose file layout doesn't match the filter list, or files already deleted by cleanup tooling.

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 moonD4rk/HackBrowserData@0503d04d7a (2026-09-06). Data as JSON: /api/errors/9b83c0ae66733b9e. Report an issue: GitHub.