ipfs/kubo · error
key export expects repo version (%d) but found (%d)
Error message
key export expects repo version (%d) but found (%d)
What it means
Repo-version compatibility check in `ipfs key export`: the on-disk repository version at the config root (read via migrations.RepoVersion) differs from the fsrepo.RepoVersion this binary supports. Export reads the keystore files directly without the repo lock, so it must not run against a repo written by a different (older or newer) Kubo version whose keystore layout may differ.
Source
Thrown at core/commands/keystore.go:209
Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error {
name := req.Arguments[0]
if name == "self" {
return fmt.Errorf("cannot export key with name 'self'")
}
cfgRoot, err := cmdenv.GetConfigRoot(env)
if err != nil {
return err
}
// Check repo version, and error out if not matching
ver, err := migrations.RepoVersion(cfgRoot)
if err != nil {
return err
}
if ver != fsrepo.RepoVersion {
return fmt.Errorf("key export expects repo version (%d) but found (%d)", fsrepo.RepoVersion, ver)
}
// Export is read-only: safe to read it without acquiring repo lock
// (this makes export work when ipfs daemon is already running)
ksp := filepath.Join(cfgRoot, "keystore")
ks, err := keystore.NewFSKeystore(ksp)
if err != nil {
return err
}
sk, err := ks.Get(name)
if err != nil {
return fmt.Errorf("key with name '%s' doesn't exist", name)
}
exportFormat, _ := req.Options[keyFormatOptionName].(string)
var formattedKey []byte
switch exportFormat {View on GitHub (pinned to 329838acdf)
Solutions
- Run the matching Kubo version that created the repository
- Run ipfs daemon (or the migration tool) once to migrate the repo to this binary's version
- Point IPFS_PATH at the correct repository if the wrong one was targeted
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at core/commands/keystore.go:209 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of ipfs/kubo@329838acdf (2026-09-03).
Data as JSON: /api/errors/531a35e589cdbfc3.
Report an issue: GitHub.