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
- Verify the profile directory path points at a real profile containing Local State / Cookies and other expected files.
- List the directory contents and compare against the file filter WriteArchive uses; adjust the path or filter.
- Re-copy the browser profile (Chrome may delete files while running — copy from a closed browser).
- 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
- Point WriteArchive at a concrete profile directory (e.g. .../Default), not the browser root.
- Verify required files (Local State, Cookies) exist before archiving.
- Close the browser before copying its profile so files aren't removed mid-copy.
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.