moonD4rk/HackBrowserData · error
engine kind %s is not exportable
Error message
engine kind %s is not exportable
What it means
kindToDump walks the dumpableKinds allowlist (Chromium, ChromiumYandex, ChromiumOpera) and the caller's BrowserKind is not in it, so no wire string can be produced. This guard fires when BuildDump is asked to serialize a vault whose engine kind the dump format simply does not cover — e.g. a Firefox vault reaching the Chromium-oriented dump path — not when the kind is merely unknown at parse time.
Source
Thrown at browser/keydump.go:187
func retrieversFromKeys(mk masterkey.MasterKeys) masterkey.Retrievers {
return masterkey.Retrievers{
V10: maybeStaticRetriever(mk.V10),
V11: maybeStaticRetriever(mk.V11),
V20: maybeStaticRetriever(mk.V20),
}
}
// dumpableKinds are the engine kinds a vault may carry; kindToDump/kindFromDump translate to and from
// the wire form via BrowserKind.String(), keeping the vocabulary single-sourced in the types enum.
var dumpableKinds = []types.BrowserKind{types.Chromium, types.ChromiumYandex, types.ChromiumOpera}
func kindToDump(k types.BrowserKind) (string, error) {
for _, dk := range dumpableKinds {
if k == dk {
return k.String(), nil
}
}
return "", fmt.Errorf("engine kind %s is not exportable", k)
}
func kindFromDump(s string) (types.BrowserKind, error) {
for _, k := range dumpableKinds {
if k.String() == s {
return k, nil
}
}
return 0, fmt.Errorf("unknown engine kind %q", s)
}
View on GitHub (pinned to 0503d04d7a)
Solutions
- Filter vaults to dumpableKinds before calling BuildDump
- Extend dumpableKinds and the wire vocabulary if the new kind must be exportable
- Fix upstream filtering that let a non-Chromium browser kind reach kindToDump
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at browser/keydump.go:187 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of moonD4rk/HackBrowserData@0503d04d7a (2026-09-06).
Data as JSON: /api/errors/d400708aaa116018.
Report an issue: GitHub.