moonD4rk/HackBrowserData · error

unknown engine kind %q

Error message

unknown engine kind %q

What it means

kindFromDump is the inverse of kindToDump: it matches the incoming wire string against String() of each entry in dumpableKinds (Chromium, ChromiumYandex, ChromiumOpera) and found no match, returning the zero BrowserKind plus this error. It means the JSON keys file contains a vault kind token this build does not recognize — written by a newer build, hand-edited, or corrupted — rather than a runtime engine failure.

Source

Thrown at browser/keydump.go:196

// 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

  1. Inspect the 'kind' fields in the keys JSON and correct any typo'd or mangled values
  2. Regenerate the keys dump with the same (or older) build that will read it
  3. Upgrade hack-browser-data to a version whose dumpableKinds includes the new kind token
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at browser/keydump.go:196 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/7b1de1ac81863e39. Report an issue: GitHub.