#3446·gopass

age plugin key found but unusable

Author: dev-zeroCreated May 26, 2026Updated Jun 2, 2026

When trying to initialize an additional repo, I am presented with a choice including a tag-based identity generated with age-plugin-se (which works for my main repo). But when picking that one, initialization ultimately fails. What I see in the debug log:

2026/05/26 17:07:11.794273 62329        root/init.go:52         root.(*Store).Init      Initializing sub store at /Users/user/test for [AGE-PLUGIN-SE-...|age1tag1...]
2026/05/26 17:07:11.794298 62329        leaf/init.go:20         leaf.(*Store).IsInitialized     store "/Users/user/test" is initialized: false
2026/05/26 17:07:11.794312 62329        age/recipients.go:40    age.(*Age).FindRecipients       ignoring unknown key: AGE-PLUGIN-SE-...|age1tag1...
2026/05/26 17:07:11.794354 62329        age/recipients.go:44    age.(*Age).FindRecipients       found usable keys for ["AGE-PLUGIN-SE-...|age1tag1..."]: "ø"
2026/05/26 17:07:11.795051 62329        leaf/init.go:47         leaf.(*Store).Init      no usable key for "AGE-PLUGIN-SE-...|age1tag1...". Ignoring.
2026/05/26 17:07:11.795071 62329        leaf/init.go:48         leaf.(*Store).Init      ERROR: No usable keys for "AGE-PLUGIN-SE-...|age1tag1..."
2026/05/26 17:07:11.795476 62329        action/init.go:102      action.(*Action).Init   Failed to initialize store: failed to init store "test" at "/Users/user/test": failed to initialize new sub store: failed to initialize store: no valid recipients given in [AGE-PLUGIN-SE-...|age1tag...] - stacktrace: failed to init store "test" at "/Users/user/test": failed to initialize new sub store: failed to initialize store: no valid recipients given in [AGE-PLUGIN-SE-...|age1tag1...]

with the command GOPASS_DEBUG_LOG=gopass.log gopass init -p test -s test --crypto age.

Passing the identity to encrypt for explicitly works:

gopass init -p test -s test--crypto age "age1tag1..."

My agent estimates that FindRecipients does not know how to parse the plugin-prefixed format, rejects it and returns empty. I did not have the time to dive in properly and verify this, though.